%!PS-Adobe-2.0
%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
%%Title: main.dvi
%%Pages: 41
%%PageOrder: Ascend
%%BoundingBox: 0 0 595 842
%%DocumentFonts: CMBX12 CMR12 CMTT12 CMTI12 CMBX10 CMR10 CMSL10 CMSY10
%%+ CMTI10 CMTT10 CMMI10 CMR7 CMR6 CMR8 CMTT8 CMTT9 CMMI7 CMSY9 LINEW10
%%+ LINE10 LCIRCLE10 CMR9 CMTI9
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -Ppdf -G0 main -o
%DVIPSParameters: dpi=8000
%DVIPSSource: TeX output 2006.06.07:1405
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]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/IEn 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 IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/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
%%BeginProcSet: alt-rule.pro 0 0
%!
% Patch by TVZ
% Makes dvips files draw rules with stroke rather than fill.
% Makes narrow rules more predictable at low resolutions
% after distilling to PDF.
% May have unknown consequences for very thick rules.
% Tested only with dvips 5.85(k).
TeXDict begin
/QV {
gsave newpath /ruleY X /ruleX X
Rx Ry gt
{ ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry }
{ ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx }
ifelse
setlinewidth 0 setlinecap stroke grestore
} bind def
end
%%EndProcSet
%%BeginProcSet: texps.pro 0 0
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end
%%EndProcSet
%%BeginFont: CMTI9
%!PS-AdobeFont-1.1: CMTI9 1.0
%%CreationDate: 1991 Aug 18 21:08:07
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 52 /four put
dup 53 /five put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
readonly def
/FontBBox{-35 -250 1148 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496
4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D
DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A
F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458
8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6
03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9
211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3
E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B
D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1
6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9
0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC
1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2
298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D
C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574
4266FD34C25C8025FD7DD45F44301DCF03F51335198F9EE71CBD72BB906F445D
EE6AFBA2FA06A0A045D56CDE98A6F0DE807D81F26D017B74D1C7A5AE254B7705
7D96CFB3C342DD38DB5730ED913639C2BF3CEBFA6F3D493DCE5F8218F8BD8035
9E6CDFB95628F7198CFA2EBDE1905F051BFC4F835C5A787E3B43EAD947EC893D
9D1B04A9A7EE7CF3E02A58BB0867AA7C77F30CFEBCB4B3E6EC68F6B234FB6B26
7A9D88A3CBF7A2992E1A3887C334B255633AA1B18AB64327E46B507CA8131CD8
65A99750C487916F0D4C128669DECF0289DDBCB7057FA68DD55D60CCEB003030
0974BB32E5FC1593EBF56D7C15675826D268F84AF224CDCF3FEA5A47D1AEA5A1
73617A55E13475DB23A43101CF85A0FBCB186B563064E88BB0A9A477ECC3E3BD
CABB707FF08FB59B9E999B5C6F4FF437DA62B727771D3BDCE86CD04E006007E1
2EC627AD74884742528C8353938F600E2A2AB60367A78747B5DEB642B69BC370
09A10A4B9F68E682113079FD061736803F2DE7297262A70D17D35D41471E1B87
D780D173C38E83EAEB7365DB28EFEAA8A4861149E3632E0B90B79B079401E6CD
00E84AEB5BD135788BE5CE936CE9550279FDA1FBBE8F56CBE238585FFA0A318E
6FD18A73EC10DA6908021091E42362F9B4791C053A1978A5383D4B985FF53AA3
B9AF065C625FFB81E9E68464F79E55F9A324FB41B059EF57341444443EEF7281
98F70FF9A3707C1562EB7791757CDB00CAF9270ECA87E326418E93E1DA0B31CB
534491CB82C7512AF09AC606753BFDCC18DCB9B2EC9089E18647435DC2662E4D
77F40F01200C0F76E81F9E65D7E082DAFBCCF6B5F878F0EA1D2AFF21ABFB37A7
9D8A84B584D3850EE98F7C2050488BE4AF7376C4577225EF633411887BE20A32
5322271CF6B4763CF4832E3844841FBC50AEB2D809B020CC94257960333D6A67
F085A2C2E72AA743234693154979BEF79428FD09B0447A4B6C4174AE109E4775
0DD6B86AF3AF51459EAF527544F5B89F34F07B0EDDB6E1C24F98DF5A513CE54D
1CD2574F477CEBF23F57DB321C2DA6DC118EFB63DAA3E8FBA0230038D071AB51
6FB4A9AF6F1DA33A8D4A5FA562491D6DDF8B2E55D75F7D2A0064F91AE512C91D
C222A1786820346B34104866EA91875001A464BFE97037578F4CB9253EF46BF2
1271A4D44751CD0AE684E5470F09372827DAA1A3291A34E7264958618D1C58AE
CF0FD5061E309AF44206808FD650324C14776A97EBBC6C10F9B896DBE12252E6
F3D0A3E68008F127E464720F3BE878E0527D4CB2A495886CB407B99A8DC2C5C3
7C73B1BD17B4B1D5BB9FEDC5EBC98E1669D8D46A77A4011DF7A2E494DDE5E249
659F04ABAB992EEF53CBCEF7F118E6AD70F9A39B680709F53952BE3E813B3EEC
3485D510BE61CCB16DDEFEB6771220E7CB58B138E937732D2D41FD2AB3B98E8B
891958DBF304D3B99E0D19CB82B46B932497BBCC223A299E8AF88E8BB89B13F4
739DF0AFF3CB10D3DEA10F810190C252930B1F33F86A673085513FEC4E4B7DB4
40FE1D67022EE2AC87D2CDE27188C1845E53DD710DE97AD101BE2B34A1BAB97B
18BDDCC1997289899B6AC4AF5C13202487CB41089148B8F6C71F0B9B40D7E6D0
A45CC708A9611D8BA52584530145E4C483183899C06994697EFDCEE19F42F4B2
6D73C2221911584953C596059DC8AD7BA4D61314DFEE53F12314E25EF5C949D4
F5498D1C4B77D4084F424638B2C8B1F25BD8CBDFD8D52C9A4F4F13251793D5F1
D5FCAA44037B865C9DC37D73638ABD042216F5C6804606A47173F59832F33341
0652DE7D3964C152B6D720F4360A1A0BE7FA9E5845B7A7B2E5CEC77AA7AD1A87
6872B86808EA8F146DD49D2E02C6A5C45AE5789AA4A19FD0D316C0D8308A6ACB
E1E4ABD48E12769132FC14A88EA12FB02F9AB5900D9F305A4AEBD0F548EBDBEC
2A6677383A8886C5286E4038BD3AEC09A7AE543714CAAEA2C7ED93DDF3DAD5DF
F7B669426A1EE5C1F5194FA9839DA75F483A27DBB7C7BEF3971D498B81AB0C93
293703634D19F6D1951C908BAA81FFEEC88F195170C194846E2BBDAEE7EB4C5D
D92A34D0C9B93E8F553F7986FF99A81D26722A7B2A9A73FA4004ADFBE0BC4B36
9998B500966D1A56BE59C14799384F5935AB4DF32D20A08F8C7E8EA484F093CC
BD04E2D3A4F2FFF6F91994A32BB2109EE186E114C1C72B32893B383F3D279AB4
C211A68981BBECEF2A0ECAD77EB1216B788B5C3909B2BA3F6001F48BF330C06D
E534ECD56CC0E2784731D1DEAF14FDFDD6DEF2D2E9BA7A1DAEB7D1A9B80E7627
7C7A4114EF626231D023EB75493CA28BBD652D790B005F064919D40A5C09FB17
AABD77FB187D38639846156F6C33D6D7717083A92478CB3A433F22C7B79FD2AB
C36AEE8A4890B943AF8B0F60F0BB202FD350DA64141A4780B82A0B014DBF0048
66D01BC4AC1AF710F0FEAFC7DE0EE489720BB8497C2B6650CA4FD0D951A920DF
67FB81C9E2B3C4C44732C1813DF41B6CA149B602AC5C9A9C2E0EFEF9A64974CB
DE8135FF639B3DC543E6A1CFF16FD733D21D702188A0CF48CD0C79E5B0A2BC6B
9C6689C9956F53E305F195D2D94032C73BFC3A14C6C3C1638B0B58A3A31705F2
F31D99B413DAE90F2E74651F58AD60FEF88AE16F450C7CFCA5839CD37E877FF3
16FA076DA3D344AEE6A1B53BC341ADA1417E6BC5B8E45D56E4268639016D49FC
42F8E9910222545CFE5DC8F0858B21A74699EE323B15AB19FDD2FF28DE875C94
05227FA92244E9E7A375AAA4ED4E2B2CE8D01B47FCB1DDCF8B1219ED01FF2D7F
ECD61EE35572FD32721D361CD3C89489432472834D627B489E00072EF04B0703
990C47E99E0CAE073BD071909EE55B23E03E180D8131E9C4AB16C2984B3207A6
927EC2AF4D0FD491EB2C9088F23E28FCDD5716FE18567C488FF6968C45EF1F10
38667F914F004BD63D46AE6B03F93C2290F2808584BCECCCB74FDB2D011EAC5D
70A8852848A3CD20E534122F86DF2470A8B65BAD07DD89B6488C466957CA920B
971EC6D5E9215F8C2A87DA4A9DE1966FC1D6E36C495B54C6EA33712148E933ED
51DB54327394B7B355EAAC8E05C32F26893BCB145AE7484B854E29B2F5DD82A0
9E177EED5B5D14CF421D3634ACD6743E1B1C0AFEFEE5DE58E6A30200A732E80B
B04753DB72718F565065B80F604EBA8064D96D39B3FD994C33117781BD442560
07C444368CA44C95B29A76277358E7E5A959ED386DA1D9806F309282B5A5E892
49A2FE594922333ADEFF8FB26254B02FD685B78B8EA9CB458F1A80778E0CD4BF
93ECC3DDE074C222CFE2A16F6DD9D2BA8388234FFB05A38669E85BC0B31200D8
FD57B0DF42F7465C70CA192D14704793563BEEF09AA995CE2E4BA60CF84FBCB0
D31EF80EAE62672701D2A211BA6461CCC2234F0071E0BB8D44498006B3FC8AE5
D2E9B94396558C9B64EFF0816E4154C56AB40F9CD33017AD3BCF7E995BF6EADF
8E514442FBF353BE00C7962356BFDC0EE390BCDB714C44F703EFC382274DB2E6
8EE19D35BD54CCD0221BCD10FAAEFE9B2C9D7732724DAC9AD2AD0BF51643C543
D5D607957A240A304EA409A75313F4AD0FDD8EFB1B173DF5680433B441CE104E
56B8C5FEF0847C23E59F921806ED05BCAAEBB95C78370E021BD7212082C7A7F2
06747BE44A541774798DDAA70724F162B2BF49343739C48887BC9A679B8876D1
3639591A558778CFC7384F1C9C1AAE364FECC91BBB3B3B58CF8EA8424CB3997E
218DD76749DF6AFA61AE9E13C4A273360781629576F8AC7838DF9095945EB7C3
1DDF51051388548E742598558813207741BCC6E35990C0FB85069D1C91FD9344
7C8686088CFC883B2829677BACDEFD3D1247F6DFE597A4E7E7369EB0E5A773B3
FD87E0C99A21249F1D8BDBE1CCABDA2F49F6A286F77ED603EC29CD0C05D702C8
B3F94F017655FE9ED05DC6F0B71A5603C36959BE3074A547E71F52DCDD8BD4F9
C201E8E7C8AFCAE52132687F50ECE8665DA50A29B68594B91A7EDB0D789E8F4E
2B26F22E3318DB587E989953FB150475683485D43D566B01B6C27D74A3797BA3
0EEA1DB3736E1DC473E9DA2A738BFF4CBBE757CEC3FF6F0DA840B2BECE764ECB
01184A808AEA7207F42E8F29871DC721864ED8DB7D758F36AC2478A0AA295D2F
CD107D81D0A10BD9C1207A9FEE09B3D7AB6160EA8BC75CFA6797143A1FC1124D
BA7B6E7CAC6770539EA2A12E562A2E485EC5BAE05B1925FB2029D07DEDC47069
579696F24FBE96AAAFAB2B63384716E6F0CFC12FED2E8BA06FB05E74E542402E
A7A4C7649E714E5CC0F835367A982318010608B4453C96BD1487C7D0AE8B824F
BB0AE8B1272A7756A7728F040680F6F3EE3007253434E0D804939F2909BA1AAD
F62AC7AB497C89E8FF0A9252BEC4524CFC5DFD0521495FC19E3280058045984B
5AC41882605F4DB208C24BE0C05115131DA6FBB2232ED0805D3D0C0EA48D38A5
CECFC70C6740FAE2301978F12EE03A2E22D68FFBE7ACC92C999802D489E10441
2C14F6C0477F0D81C60BEFA54743CBFAB31A20488C45DC1B69BD0948B9AD0EBA
3305E9BD6719290B01BD028FAAAC3A0514CDDFEB2AAEC8A5684C61E66B0E85E4
B699D3CADF8704FA8ED6EA57909A6D25B6EFCDC5C73C612350ECBF3ED9ADE8B5
C54B8BAEA01E6178B07326E6B9A94D66C95E33E64A00073A9C2EA0229E488625
9ACE4DA1CD6C6A1B0E41DF8D01351A31504CDE281F44E816DA0A1AD0850A622F
8B631E49646B6DF9F092511B212F2D160C82076F926E35FEA9E76FCFEDB77267
E6693B456C42AB9E11C59A07A2E60CBACFA15D865E04A39B37FF9D069BF91FF4
5770115BD072E6B74ED210A5E002CDD216724CF299FA3430CC51FB57F5F504AB
13265CF387F9D2D8A766F5A9344CD915FCDFE2360FC4037D4D5D3179A7F5C9A6
1698325D95B853C7ED4E20B7315EA190526973FB01AEF166E881F85D63568FC4
7194103771E5527B1C1A79CE7E94D4D4E21058DCC7383DD62C52DFB12293ED7C
6F4F6C6CBD0E663BBD27AC81B205A4E769EB2BDD1B2951E6DEF7F7105129FE5C
00E60C540C8281253F97EF4371C1220EB01BA19DB1134DD489A204A1E3546B90
5FEF35AB501EA8DD150CE75ED3F7BDE80298B6FFD4BB4B337612BE50C61E4DB8
698BFF0D95D6CBF5EA3FD7CE547833C7ADCBAD30B00137DEEB4BC1FC553CE31F
E2A2384FADCAD9C54D79E49B745B7572941F8EE78D9241B616490E0E7E6C752A
0EC386DDED4301DCAE51D52E8030DB90692DC9B1EC0EB2FD52A2E7E7441799F5
A7AEEA7B6BB7C842D0374EC6BD2D804664E1DCC48B06A0F5DAEE8435C89DE651
B317565C3232AD493054735468F16721E54BFD4BC25C3069E76A6EEC3C2117BF
7264785919F3B79805DC868C6E8973E339B43D2E3ED3DC089DE1BEECD7F8EEC0
47CD5661D5B8DA1112D3312E893F38E1AC3788F5A891EE5D2B024E4C544520FB
36F55D85E88ACCAF877023B7CDAFD908474EC6A6F416C1E0F9F36234641DAB83
24214CB6A4F2073DBAD022A6877D1C02AAB027C8C95CD4C618D71CF678DA0846
2783D3F5A04E8E145AFB70AD6595904CE74168EC507CA18C5374C9943E17170A
20D30CE43B6FBF7A3A004B794769FB0F11341A688411C23CC8831A414D012325
AE91B59ED1EAD4C78BBAC12C421D98B4346151ADD73C12AFE5CF804EC367D90E
2B6382184059EF9F2CC75FFA3786B58D35736FB6DFA772C1D58BB055685C447C
C0234E21BBC49AAC68B8DD46E70F104E1C3B3E96B1ECFABF6E7AB1FF4BFEFC79
A4E3995BADB5BF2DE818ED7242DB1BC22EF971F558A6C5453097D6038E800273
394B9AB368A1E1F4F354BCC4D01F42C91D70A5AF649A15CCAE64808A20B3347A
C534733CC84C0B761343D6823D9CDB85F0B15B323BC4C80267C821A4C06480C3
2627267175BDD9769BA5CF6B075BFADF1AE14340175C8B65B0BC379A02A81687
1405355ABE8970BF4E374ACB1924975E4019D461AAA4505324AA4F711D75427A
952F2947A0F7FFDEBF0B7C5EB5BC094848B094C73A3017E524F6004D76FD23BF
B7590CD253E184FB45C130E25F32C547692318B03E9659F6AA02E582F55ECE04
6BFEEC27A3110047505FB526133071D7D3429FEE431F7CF6A8FE6E3F30E9E143
BF5ED665249C34C3721A3E0BE7C1903866DFC3B30A53002ED7F31A401CEFC2F0
7C4F6664EA9A93F92C4F2621E21D6D22D61A230682889D5A5CE40A7943CF5978
6D3C82EF8FDC634B3C21351C8A55E35FC9D88D5E68FD3BEF492BB1408048BBAD
4C1E21493ECE148550B046C1AE56BF004D6AD341ADB488AB738A663267AF7845
83911A8A6BD6E330B47357B59E393CB4DDFFCD9C499BCAA9FE72F4E5FC3380D7
2F1A0BDA673BB61667A1CB5068FA8EE77183FBD388D062E0901D703F91D2C3CE
40D7544BC8F995D56A6E7466B20CA7F2271925469A8C51BC04AE20AFA04577F0
8B8EA34B6B7D52BEE295CAFECD3FB7B468E875D62AD5F3293A51391751C2F139
F3F352467496BF4C334C1C396C007646CADA7957B432082FA86C576388D005BB
88C6D02238823996280A680EF4385D355729F7C381C9856811805FE0C423B2FB
A79918447102E5FC8C096A067F6F9FC8BE52E74E722D116122065FD0146859FD
F2BFAFE3C2911E8D806F8F9435365B1DDFCFC246D22B5F58C3E9BC940D4B4E61
AA639D9191A1D553D28A2C157561EE6483097FD43128CB67050B08DDB6E3CB88
204D9CB3619CE822394626D1F924C491E16E08A56E9571C4BEDB7C17D69FA505
F5C9C92E4F715E749095937C3CAA74C0FDEF088F464AFB6B827835B3A9D5B5EF
7830B0D7BF6D5888159B53659F065539DDF04C1980AF01046E3A824697DF2B42
62BF25261DB0F4AB0BC043E9CE100C150ABB9C12FD8D12D2F9E39774985B8CA5
3240A53D519B3CD9834EC2F06ADE8B7EB256EFC8A4CC1647AA5BC122F145D757
419D87B8428C5C259964FC0F5190887EB9A4F45D8968E5BD458215059F3DB35A
15E6E5B45C1CA9D1794D049B36F307529894662D8314D837B9D151AB1AC64E9E
D07B840DA8A615512C35D3A2800E861C958A5FFAD07651926AF631D2A377C4D1
0193EAFE89F25E01BB92BE1CFA9B846E44BB233779C61D7207D63CBCA6696625
737A4FEA650E6F78EAAE36B22DF63FD9611471F4CA19DE7884E10A8353AF1AE4
AC847F1F4CAD963381E2402A292465031A3CA383A7BEB34BD330EF4F653B89EC
B9C2181B4D79088A5EA5A71CAAEF114962699B3A290D360137603868028AAA75
5AA1A8A05CBD22E2723AC9918DBBAD8A051184E503BBDC24919105A0F605D36F
59221D89E1C6267ED1ABC3F8D2053116C6A1E9DD781383F23A2FB42103EB105D
DDAF580EAF9038DB725A09F1F57B3943BCA36650C5E3BDC7F4C1B900BB4B795F
4BE5A11BD19C946C0DEC5867B99192BCA68DFF1A30243314A7EE23F6679C0F48
6EBC8B27F153FAA190380F74CBAD10ED1A2CF7EC41427651A0E17763E25B2A40
698835559BCF422B2D73AF2F9E9E4E9E9E42DDD93B25F466AF4C711E028C97D8
6ABFE8D40087C6D6C1BFA07F2613F330BDB9F7C291443AAC5AA41D1E81819F11
D4E2402C73695123061066205753F0012888A3F58E785B5A809DEF8C7BE1ADD2
E0B896ECC6F814F4521A8554C5DD657A513A2FC18008756445CDACDAAF14EE46
F7EBEC6289234AB2E8DF20AE14F5C06F8B363B9B6153F745EB5C183277662694
F4E326BE2D99F0491D2809E6D093FF3DDA893D04B069A9E127B019B9B1ABCF73
DBCCBBD5123EA74B3FB065AEB87F8147A93FA13A31807F4A95402030AD56D682
FA2C255FF6BEBCA3676D0781B2BAB38A45194D70EE69E0B5305EEAF347EE3913
21BA6894363B2173DDFDBA21DC6ADBC334D817ECB6497F7C44714A9D00CCC9B2
340BC46B7C14CB7F047BDCC1339D313DC284F7C37FA0C4C840B464640B0C478C
54157BA525A9B5A02A8CBD553F79BE7AEB9E67BEC42F24E0D05C18DB927D34A1
5AD348F01B2EF6D93C83A8395174A3B9B51E6595ECB09C8EEFB8AA2D0D35D31E
6FC5DC9E63310486E03D42E223FBA111689204BCBB4761BFE54704A6015C6C83
F719FB5DF7F2D496793FBD9F834D83603BE8C0A2A05F32CEAB2B131423CEF0F1
55DE3DA3BC9A5E52FEB4863FEE4D425081921398D09998FE22A50783028018D3
3C951DCCB394FE9DE3B27011B8E45D053264670872CF16675FB557DE9808A640
1D55C14C9FCBC3E3C73889631B8D3A5B23B2F32A4C6D50AB5818B25BD5E58639
254929E24F42E4DA370103482BA598E39920CA2959F0B0C2A230DBD7B6DA23D0
8F862C35372DB94DFE58FB968FC8E5DEA55855C44E907C6924B70A1DFC1BDC24
2B0AF3EB17E64DB48C55D83EFE9704AB923F3AC94331CCDD3316FA08D5853C2E
95B43B364DFD2289882AC3D4D2EBCEBA0E59A1506F3BED83EF09EAC0072C479B
D7FE60BE198C3356F9C0E66E48C6F6BD575E9A559D57440D1F13082548A3351A
09382503466E9271C4FB5D8B11AA514E8A5C263EE9676E5D9F25E6309416A237
A3A432909A3E5C03E8224133AAE698D09BEBC10577DC03AF6BDBEE0CF44A5266
DCE2AD5370CD4BA27F521E91D362DA48ED5E110E98AE6708B5E0439D8CF00300
ACDCFCD0D7A63A6D19229B57643061DB8C4C3E96D6DFBB366BFA7F20BD7FAB52
66FA412F57EC21944DD4640B75CA660AD0111A80DC377757F058A95A0D0A3738
06F85932002B68A789C3C90385C13B37FB25F49D2B53786F63B3A606259C1472
E16FFCB5F5978A5206667623938F35D35FBB50FBB93989F3F05F6383EB4ED8EF
B456932EABCE92E8F3564A06F8214C6771400C7D47FDFF6D5106FB64E4E61189
43B52CEB019B1B5844DB0118B9766F01FB63834CE7CE2B9C0472391ECAF6E24E
18B5D9F6A057F855F18B68BF962C98C2BC7894455675066C5FE16DE883DE14F2
F4B89E858B3D6692B77BA8E5155A5DE399CFB85520A72B8B4A3F83D1CBE0E220
3EDA3C1F421EDF3327F6FF13D4E8EB56B1B8355801B52B9CC153CA6CAEA9E57B
4CA1784438027BE4BAA5A825BBE2FCBA692591B3A6167DA4C1E68297F8398A82
45EC6A43D654131290DABB53D172F77676D35E7576566B66BFCBE69115914168
D1820ADEA47229914F11D219B452A2D45E9A7D9E7C7872CB2420238921C21BFF
EE29708BB164DD6E2996230C7D6AC13E83ABFBE64D2BB1B9E246B05E12CD14A1
EE9EC34C2A0CE7F9FE803233C4E4DF7C0D76C2C024EF31B3793FDED3D4B896DC
59A46BDD927409EF76A6983C0F65BD9086749FAFA870D708446D269C38C0587B
FAB653EDD6836D5214569282792C2B1CB97C6A77A695E0889B661165ADBBD1FF
9ED77245DA4B96279AD9830B8CB822A812BBCA556C9C8808D6060CE9766CB693
A6D9EABE61DB32C00561D720DDFDD77DBE80D467CB70AC668AE4F672613E76E7
ADDFAB47002F1D3E3BCD3A7E59AD765D9B4D65A55A526A778E2067A376861E17
F19D44C614B658E97E78A4F9A74F8C4C5EB96F2B470A438B4D44D8E2A9F0D2F5
DF78BB394E61428137B165CC6D304C1F6D7F6B6A89EA96AF41787FAB638BDCD7
A04D0F86FC5A415242B65275770E4FB9E142CABAF52CCDC947DB1B56486003B9
106D865980983E630248943690E1B2BB6039DD1BCE1892CE896CAB8C82638D50
3DCA1536309AA7872073CFF261A9BEA7D0D3F694FA445668638E46DF89907448
52BC893349BF4686FBCD67AC21EA450CAD1AFC6BDFF9B416D6AD872F1934E1F5
CAA8B1D3D495D6B1F7CCDEAD0FF8F25FF1C4FCA0072A4222774C314EEA8E6991
2114A7082995B66DE2D67ADB0E7FA82CD145B7A00DCBC20E030E40A754FFD7D7
E9AE1F9F114BAE0F5AFCE4D1A59244478DA60DE1974E09A3548C2A9E0E17DD28
029148EC2B50CF43813087FADC851F7497853552D0F42F41079D852403017AA8
ADAB5B587A376C1D254E02E5E27C837ED23FDEEDA2926BF5C9D54E6431B4E154
CF3B35BC6191C544F78F96354F1FB07AFC29DA0263D272B119125F01E60B43B3
87D3EB464E300469A841DB0967E2AFC5CFA30FE832C49E9A373CE5F5DCAA28A6
B3A9CD26D2DD6EB75D67498AE3E3F5B399BF8A447453A7F8CB5089B8079FEAA8
3F95BCBFE76A567252114517B0B64FB1C7C6380BAF84E1EB168202CCE44892A9
D43951439A85F273A433C142193E4DF5DC1F6DF2D67DE5BA7B1F354395E63D43
69A0055696D6E73375B28C7CA5810914330E05A95C97431413F7D0F75764792D
131D0C559CE20A7933A3E8ABFDEDD4D76F93F92113DD21E9E1BEC601AABE8343
66361B8586EF671A6CA5B4ED94AD1561DF409F701A17A908524BDDF4ABA54778
6B8A38AF91074099995228D3243E21DDAD5A161874E6464ACE821D4E713B79CB
E80CC5949F590F7FA137613037CE57F89F03787D88D21D9E6906334EB39502C6
ED6796F907A25DF3F53BFC09A9E589E53AEDA96E712D88A6E54E6AECAB186966
2522F84B60DCCB8073320E5B7CCFFD176FBFBAB41C9F881D5E2B5886557D4807
C254BC75801681F070246284DFBDB19718D818CB8B04CB4578B811D45A0A6807
59598124741B1321AC30EF9742550260AC883730C51533733E3C30B22A63FFC4
B608A969311B55A619A00ED34DFD3AFB964ED2902492C8DA6C433B52B89AF35F
F8A4880E570E8C9F936BEA5915093EBF620317A5A36AB2D816BF2A218CB08F16
145BC32E9C3D1AABAB75C5748745837190B2C357FD437837AE94B4B4DA675D71
D24BCD4DD12128E8EE631BCEEE6F82EBAD8E73BBEC4BDCDB7A69D1A52F193FF4
D63ACD8FD5C94300FA72404C9D0F4DA1E657CF499A6098E9DE2F5E40FC4E8301
D6A43BCFD95C7A860FFC73688ADA9403C6B7955BACE15A4ADE11F8646AF5705A
5547D27431EB322E0719612C1194C49A58373D841F621DD96E0EA59AC96907B8
50602A10B744E5D62993AAEE50CF6A94613EF04432AF3946FFE2F434936C4E67
BE1B863DEE930518E564F9CA7907BD2EB3029972BEE47D9013A883E9DD4AAD25
8A6B182EF982B0F70C7F500BCD9C8F51E5CCE071F84421F2F7260339FB12B67E
537DCCFF21D055B038C37D4062ECA424F3578975DC0F4EAA41FF0B36563142B2
4543CD4F3728773059FAF569C36AAE334B36AE7B301134E5D5CABA02822E42FB
3C826F56002C0B495B5703095611B147FF9B00D3CBC7E23581D062B18562338B
5318D92A7EBA785F6EA0476CA4228B6D2C782C9D0E6E10DF84E5D4A6A3187821
C85A1FA356D3AB063CEA538DC1CD2F860D13836CE0560D8E413FC7CD50DD30D6
B7B1053EBEF65ED3388BA4D8A263DBC7F73C0A2DB97D44895DAA7194C83EE474
C932A5E894F9EC90404E3DD44CC864128C15932F237712FF47708EC3E6924F10
2F12AAC1EAC42042C1953CB455E706847C1F1D434AC327477A0F8997AA2D2F51
5ACDC58BBC8D133153F6D4568FE14CD968C2306EBD9B77CDA353B11DB2538A82
6F5FBD39E4DD73E78F8D165BFD0F827C75CB53276FFD9FADEE0776B1CC793731
4BDD4AF1DE859B138C33560F6E29D860CDC603E2F90D6E7A8820786DD3D79B0C
304C82E46B86C265CA33E1DAD8912CAC56586BAD94A6BE8AD6847D9B5FDCF140
2C5BE347CBAFF10190B690275F2EDE1599109B6C6BB3570D26B172593B49066A
0DE7F742855DBA960129B14C641E131DCA073010E5D9E47E77B663F664345738
152E1FD750E25B7B19536E1764432CB8250C73C9C0F3EDAB62AC83ECBA431BE6
6E7ED8DD5709B7E4D00B72A9AC2B3A2E92EA6412C5B6F63F5AA8624EA6EE9BF0
25D9A3B0E78F7E121C5C62024B50957F58E7DD320E045A8D7589D741C96FB135
7EDD7004654CC9F2DF38D4FCC5507E4BEDCE99679F0B6BA909DCF2907C24819A
D5ECFDCBD56BC00B6BC8739BE5E6CCB2F8948287E8E5AB5AF3B9A30D883A3A4D
678F56D5B36F436A0D3FA95E0C8146DE125DEA41AF830AE47EE1EB17A8C4265A
52777E1D87FB89E3278151791CBB332EAF4E3F3BFEF4BFD1416BBCA205F45B79
121A8E7DF15DB926F23522B78705B85604E43174A708D571EF3171A95C55E8B7
64747F55AB7B4F5F662028437D2D31E1AB40E5185C5A6DAE3C10CE1B37240F9B
717F549B45754B4CF4AE0591E490B2D45EB50AD51C812F01DCCF48AF99F9DB3D
61DDE0EAAFDF8F49F144582FD3C768C015B7F82DA628D9AAAA14811173C94655
89CC2237248A2590D248C68195317A3C509512A63D3FC3C01655EE7FA7D86B23
7516C3B63F1F303F4CB47733CA152DF51AC088F0D2263D1C29D5E6FF87249779
14176E1DFCD10588A1AD39EF79D717B757584B5C1EB9FD27BA62D2595F5540C0
6C53F33200ADEB545D224CB58E0C952217E9D31B0D1F3233A24AF627695FE837
318CC20DA154F4CC883FD58C76DDCE33053B3A7CDDCD636735781A49BE13D790
B18E55EF02FF0578F6F0E9C835B057BB268CB9986F1A7C560EE2D5C1F4A73CDD
3455AC2D9AC94C590608149BC0BEAE733FC8FF3AAEB11EACBE1FCBB0B2688BFF
799E3D94A59E19E1ADD86B067F6D6DB57FBEC190D2C971894247EC282EB6FA0E
1C7D7060F19C28425B91AC8383332DD9213D3CAFC39D616386EC64DA29548499
47CD876263ED8DDEA6B48E824CE8803A93485DE41A77899BAEEBFB56854E88C4
9D46C5F8A3815B4446AB5D74929B4E589CE5C86C5C66C00CF6DC57BD7AD00BCB
5AFFAA78DC01FFA93103DCB29E7101EAF490ED78AA079C95551732D7FC76A5DD
79676F705E0602E93C4AE91065EF6B0CBEF9A10AD60FF059B1A9443FEBD1F502
2BB1E8E2BCAD01546D6DFE2E9B0B7B934C49096A21E215638271465ABDE748F2
86527438894A745BF4CB5340B3E3673B273A6AF5D6A55D50FD1E01A70E735062
F3021ECEED0FAB663CF2079690F38371EB5820B8812FAE43898E0CF2BAB1C850
A17DC32EFA772EB8C9859FDE54B20582353EC133BF744C5AF4F0A1A9DF3F9A7F
A0ECEED5C42FAE12DF3AF65E957D08A13CED000399755B699750C1CB6E2A4AA7
027A3B6052678C787EFBDDD7D28CF05D46E77F56BE023A0E7AD4460EEF2CA01D
6A9BEC269A23328918E3B4847B7D110401A522DBB87361007A0FDDF61020CB07
AA48FAFBD7F245A46BF46E5C5A5C58F60BABE1B651F7F54F9F581ECF6F2EA5F1
8123C21CEE8D43D5F592240692C8EEF738435F2B24345139237BE527A8ABE7CA
FFDBD2B146DEBC983D4868375CE034FF91D10898CABFFB84236DF4934E96C1CC
8DCD7613ED92B4A1296E0F6F1C07CA5B2F312DCBDA5EEC9DA5B8D65A1D5DEC1F
516F6A3D932CA4DFD21A67BE46252479F4DE1B20E8D19C47A9C7F01406E35D69
5A273A5E0B21CB0F1B9244D045F54D86F05D35253F993533A9FCEFE89A1EEED8
348D1AF11DAD1EED067DC33A39C5044A1C670330B9BE0E251B70ACC021616816
097CFC4A420A827B55F3887BC0D956257CC38D4761A0B4ACD381963244F2E953
EAF1B8DCC02BFBB0E67392835B900B85F45C9EF47BA442905DC50EBD56E83FEA
41B0E14DCA93A193E1617081E0E18F3DF05B0895FCCFC3D27F44123BD3872F4F
4A6061D305213057A7A1A0462BA8AA9A3ABC165B33CD97DA762D1CE938BFEC2B
1317E50F479448E8DCC73ECA9642A585F1886DE23EDCF2965A54ECB3E604E4C4
9F0AA4964D94E12C0A1D54CE359B227D5058E326C8AAE5348844DD50DB41DE3A
EECFB0299F8AAEA73E58ADBF661DECD297CFC1C92AB82AF6731C1104023AE00D
8AA3ADAF6A1139EF0B4D55109F16870C563924C4578F72577E46536B60D9AAD6
291E6FA8252DD68588DF86184199FB385B881DAA86DF921D808DBA3D2E4848CA
BD1A9B66A0E4E2FA1FD0E07D75865AEE8744B04FFFCCD5C8864F97F87ECBAB59
606E89C9F34910D45BED49441F2E8D13E34878BB16C3A918AB388AEF52A8642D
D9B1B5684B65D0340AB512E7309055921D6974D4C6DE6EB9231B9D800DF34789
5AB912362EDDC189FDA120BC56E69FB62328FC377662CD4DB82C945F4D62323C
790FF24E50E1404333CCF6B7A20790C353F45D66D0BA849A28A9A4864AA108AC
EFC0DDDA4BCF72712312A27215F3C0267D54F7869383D540DA060FFD2C2EA128
1E85AD8E8843A97BE165F89A7BE3E19C83F7FE756F14DA8DA2D0807D2E668A75
4CB3620923B97D81AF378A2555A843C35998426235EF627D91466F6601711781
63E649A4A2336EF45C71B1175EA96985D83F71936E25ADE0D0644928B41E4A73
83A2E2ED3DF91733D8CE9FC83259008D567A7E104D06C7688663E1B5A0B822F3
00844D0FFA9DB35BBF3B11D273A7741B4DA22D2DD0350B762C0E32C71B7AE8A5
DA10AFE652B5A351F855B6AD3C5CA808057CF1886C24A1B6E4DA3681FEC99218
FCAAF46089F82D63FF4D7890D38EA5AC1918E10032089CB49F17A465E29DAED9
C2C8C3C414C40E26A77AE074E4E5DC04C4B4AFF99F3CF14F0575262D4931BE65
5B0128A81732CB74B6BCCFDB75DE23D572145599BA7A1BF23BD96DA9448EF025
D1A70D45A7E45F91AC818B3AFB038BBC40A3EA782752E4C927804897E0A3645F
FE998E125F3B7392696774DC42EC638CD9C01C4BB4061D69DF2B614300AEB672
E7F83A8ADA32431F0BA536ADCE81283AA221D38A47C3EC5A04659C2B95DED24A
73A3D905B3429860658C5A17C230D18D9271207EE54AC21A6130C396B8E4AEB9
AB5035CB9A6186054212D09D153660C30C07B81ED65E44DE25DDFDE0324B55BC
ED5CC3C9C1028C55B053C8928101F37B8C1688347E496C92CFA14E096F672352
AEACC9ED5C40016FE5D30CA064C11CB894E46C8336E15E788D964B3997BE82EB
4E918535C5D7C2ACA09839FB2EC8FB19F565B38369D88B8E8965FC56C4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 19 /acute put
dup 32 /suppress put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 89 /Y put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
2617B3FF62C4887452FC2323938BE58C4FA7C7851999C53725289381D64EFEFA
3E9FC5B767221B04538B502E8383A5E1CF44504EA6F5BD1E148A44C10B3082E6
993E434362AFA0A379942FAE60996C3CD684A6509D286669514F7DC98703D742
7C884BB21BB9C8ECBC8AE025817F8E16E0AD227004A30DE0C6ECD08C7D5D7740
8BE78BE1237BF67F8B0B26D2DA1CE267F845C26A9FE6467F664E818CCB53F54C
4D81CDA7BE5A015F745EE8AB26092E6AA28DAA32E5F50CAB6F888AEB31F51DB8
B9F3BD27B10E2B65A666E0F1D741D3403D310671C7D4556F890A8F0CF9B33257
0DB7D32DB53D7D437CC1D447AD634419CB4095AF57B76ADCED6A66AA1097CAC1
5156430DA9BC7B76AEF92754877BF3F383A691B4DB549342A6C20561A4F7D7BB
A57561CDF86ACE49680E0CB91A2360DFE1A7670A7BA34D5CE3BC0327B49FD801
7826527DEE5D11D0F3D678051D989240AC01A0FAFA59BA055F5B92A418E845DA
5A63D7777AA8FAF19BECF21AB031B53BE5595F29D9D6407626F0965F135FAEEC
83F505E1F925B3A496DC2ED80032A3958E6D943BECC6B2099CD132E2770D4A36
7115F72A71C0187983335ED4E3A9010E7DDBF5832B2FF44D16941784902F2AE0
1C3B48A3D0897CF35B44C7128B12D2EA691B60C74732CCBE29EA9200D9FC31C2
FC7888CA6F8B7AB37B94726B922CDA1055CA9310EBAE409B0BE1DE813475ACE4
064D40182DE37250CE870C692BCD8897719BC63DA821FE8122D0588317538335
BF7D922321600B40EBE9B132B29F9AC9BB13C3EB4F2479FE0725B902B9EAB137
E70650C025504B5F3926B9826232299B311E522D5C0F3966C9BADC55154DD608
CFBE0395372DF91CC4B517DD9B64E76EC0FEBCFE68A9F75DED4A493CEFC11B3F
1750F26E49BF5D31B8CCE6FC068E54C9EB50799AB3E88E1EF492D0394BC54098
5D67B0DE3AD1966AF0CF00EA24CF50DDCF2023A5DE874B7DDDA7F8CD77147ED8
33220E3B1360DFB424F606782765E5C0CFDF0CC6BE4E69F7AB67206288D7815C
9E64451ABD7954323A571743F0ACEB4F2AAB1B3E178B8405A45CC4CC86B74E7C
7C7E61C51FD85942A382F8285A5BBF4F9410C00FAE6B6B22050B879ADC2C8D83
63F74A6BEA894BF921234F81A8C2E51B94F3881938EF42E30932B82CF80D67C6
DDB6CADB37FEED41D3FF3146332907119F3A2F63DDD52C7E526DB073716B30DE
34E0305822DE836152A40E3F7911BA338A8B75B1B7AF95E3DA94D5E620C9620E
43A7969759ADB27ADA51BC4383B405FE546F3F86987078DACBE91C6A4F1E6B57
369E8DA23CEA214553AFA4044FC51F7EFE64549C15C8C8AD6A3F20F0B73F8096
5FB206E2C773B4718B48FF75E88A40C9FF716EB1B21379B49C64F856454D3D0F
47BCD2EDCA1E78B4EF00AB744DE0E28221D7995823239D7630722FEFA65F9C75
3D23E481A70C2E6CC4B995B4F7EFDA6AD087A1DBD8DD8427E387FE6283C935CA
7C5AB1691C16605FF2CB2673616B24551910D117A33CD9B567B879CC37767BAD
DD0846910C1F5126C0B96204592C751CEC4EE1551BA7DC8BC8A2D34089AB6E30
2210D66559B120736DE780B00941F2F0E525CD2D59FFF6A2D160203376E0D1D3
26EEF0CF7324E6D41EFD9E046EEBF2BF15A2DCC5324D986C5C642DA40921BA38
943035D1B744E0ED6FB6AB23D88C5CFD9F20D59F46F33C0152D6E842BFED89DF
EB411F1CF83738CC67ECECE86EC499C07152938390B483E592DE1DD454B369D9
86B1B96B688BD15948B46F3D4627CFE806491018BD1AABE47634989E9B83EEFF
2D8B3F48E93903CC7747C339146E27F80E725729D2B1E9CACC9D64072A1B7A14
9202586D0285933EA15C27E480004BC0A2F4A43C2FD5B825F9A669D25992B3A5
9599B36D1EB4F65E1D114060F5FF0F6A5085D8792EBCAA08AFFE1C481FC16DDD
7638941131DC3F47FE552A67DF56CAEE534F04306F4D45D9C457CA57F8474172
335F4F9A5ACFF55F51F45AC9084A566F468E02282307C9A98F4BC36CCDA33CEB
6239B84BFFFD19FC86A63B3D3BC8D10A9B7EDEC3E674DC2791B202DA06819D69
833156A8259B9D9D1882ED6F6BA3BE42559EF957587489A7C668CB3F4467EA7C
A4D7C32B7E27322764DD90580D98F9403F8CC5A3127DC51CBBAD4D3F6C664627
D201BF02069FAD3D3611BDDFBFCF1289D82D80E67BA6D9FA95F0366532AB25CF
44BA18973D7FDF298F61637344A176B8DDE459792F5D7DD64AEAC863FBC7EF1F
F6274E39A68AB9BE4510483952E2802E932D346CF95C655457B8C3E1EA459A22
0330E46C0E3B798635DB8C373F14468D47B8B856C50139D5681BEC66C2FD1C0E
DB5B003CE38958EE24EDEE318079EDEE2FB8C5C2C51F566355F2DAFB016FB292
C6A1A24654C84CE724E450DEFE21E5B139A8A4F294D56922646EDDCA72954410
F8D57536141C40B1C08821A3E6AB882A40013DD647FCC520B9B9AA12B5ABC8C1
F5E70EF6E1849814CA79E102436ACBC399A73735B24C442829F3E39F319FBC6C
40F1EDAA561A1581FC4B1B98747FC6703C032CCE4DB5DD29CF27978877F5BC24
928D6B822AB2A7F885A47E22C1EF27DE7C746608CCA0F44BEC49699FEBCADF14
1180E3C1CAFED9A13EA088C86B33793CF8043555B143DF771BD9EFE8E7ECF776
3F6B72E8D1C1CD4D1C93D6C227981CAD06EEC281C4ED3B55213CDC258C186F19
9002D371E4443C80FDCC8629EC52E570FADD883FAC05D474320417DFD0CBBF76
1D652241BB5E4D6AA7623541E92F9926AB396285F938F88E501F1C56B2334632
28DE96B6B9DF360EA29B3566F1D707BCEA2A6B8C6D91F9242E1762418E69B4C5
2E698BCFB39AEBFD9219EAEDFBFD60E64B78FE2430D054697E584492565231C6
2B13B6964246C27EB52724B506B3D71764AD0D238A3C6E3FD6DBF6EEEC7EDF7D
958936EF4CABB3A259AD6613E2B81DF6CDBD82A61A701D8EC6760C91C7149278
F6E1E2F10A849BDB8B8C52311992D292D8167DB96B3A14749994ABCE76DB1445
60C04F382154AB5DCCA6C4D089F26B661EC8173E5CA28BC29859FBE4BFDFD4C6
3648528FB6B6A7E5E70204BD487A65BA993C607514ECB8BAE3BB2761594727D1
8BB1914815CF51869C8E73E4ED5606F8482493CBB9598B08A4DAED6B0D5DBB26
424556AF923D34324A35D99953EA3151D0E8F2AFBCC8B30CFBB3EA3B13B9E514
F7A05083C2F54BE664967FDF82D417027D627D53AE7EE0A0B63F9722C3342DF2
28EDAC1B5C2312919B7AE6F54C4625F3E5129DFB2D3F11CFC2FE079C35540C11
C5E097B7A6572BBF056570DDEC2201D5FD8E1F044674199B21AC091DFA328EED
B9F38BB7738C1921903466089F25BAF64FCAF4DCCF05480D8762BA4B905BAEEC
FD0104103E8A425B0B6D8EDC8D53B8CF681C96AE22DDA106D6157A501F14881A
7149DEE9F2C534AEAD98DC79DA39654A07AD0C90FBB3ABEAF5015AD2ECFE3B3F
8070987246D62A5D1EFFD593FB5E0937AC886A5CE152FF106C2EB152A90FF332
52305F2332640765E0B7FC652973A2DE6C657489784BE58FCB1B2582424463BC
B2523930079B5F0732804D8E488508D48B3FE4CADB373CF9C09295367F238B4E
02E9971EFC1FD54D8231312197BCF1C3B591FB114B06C7690A7429558FF859C5
D962A82AC0E3C7959A70F7D2035BB15662F6766E34DD3C360E0BB078A598E570
423987FF5893C3A73C80F2862AC6932BA6AFC3EF630DFFA5296DAD6FBA7463EB
0E533C71BE63518A4C53A1631DEE10D2A99FD4AC0BBECDBBE28B4D17D441CEBC
3C9DDF105E66FC016147CE853DD13069BD1BCA973899FBB2D8A6B5897A02A03D
FF1722CAF4F6292C4F49C1D53A01C80C1230F4AD07471B2C1F4A9F448276D069
F562F304746FBF2B887F5CFAED1EEA7BA7C54B0D842764B3113706FC91216A21
EA032A6D43C76E1A74F9DD193A91224EB360808164058A1ECAAC5C9BB34CACE8
B05486F2A340A15761CF062AFD71D96CD8C4D9799FDC3C04182D8763581F5ADC
456EB47EAA32994DA5AD1F5610ED31050F6AED82F1B885A73C745436D9968126
6F148EE63CD14B2062FB2808B598E21866451B9415B15C2CA145AF8CDA6EDC9B
E4FFFF2012C27BADA53BFDF97042189EFF2B2C58173EFD4E92927085D658FE09
79B93E106C6628F6038124DAEC8F0694D3F98CE176781C15BE6DF40E1514D66F
09387E4D1C858E20498B13DDCAC59CB0BA7970303B11449AD66B26856CAB1922
879195A7C7F040AF6922340CABCD4CF8552ECEAEAAE213E4481E77635A3B286C
44358A43C31753F3A60722C13D279A622CA64556C92EFDBB7D7A25BBF2E03878
9A2A5F712675D13D495C55E6A36D28E5DA1DFF8243EF25A53BA2EAECA62AC742
ECE2A91A9C98A6F0ACD0B28B9864C4E23226EEE6CE3DED058E6B80B95F2139F0
529C36FED9343C159B39D015FA3582CC1AB13C473A4ABA2EEDCFAF7BFB775983
DAF774C35DE27F4591289F72F4193152439220F8B137EAB923EFCB8CBCD21613
CF52174A42607C014A8F5E5BD10BD6E4498C92257F0E0B0EF0D2B49FA926AA51
8A436AA06A9F5900A1841F4A6328BDE76229D88A3F5BD1234EADF5108EE25BBB
1EE710D866436B9A80F61A3D0B51E4DDCB03A68A6576BC1E8A8B7F4BE57C3D5A
148EB8F794AB4FE3F71D71F8FA6D38F7D02C80D5CAA7719BE78634BA6F789E58
9E71E43F5AC48A034BD526D6E0EA547AC93341BD7D2786697F056D3A23EEEEEB
26B35456860CA9B9F02319B11FDA4BCDEB48D4CD6E5A442DA50271D869F5239E
6CF8D1C7E173212D2F9CB6FFC618E78A8D189F5CD755D73D46B2974AC75AE89E
56985DE62DC6A5CBE0FC988CB5D6198B6DD89490BB2CAD2113AC3133E36F97F1
5473967E55153681B49311275F4A23F9117B326D47FA31E12A0D3403BF16115D
CF69F6D715D3C5BFD80F2D1297C21FDCB0A26EA07CCCDCCF81EDC9A9077D5FCA
F60FD97F362E99104F2FD3D29043747779A940B238FB628110D41536F5FBFF17
2B5720E6DE6EF3FEB93043F3CD1CEF71C68F351FFC243B3D827FF95938A089CC
999BF7B6E127D895EB315F3F126810FD88C89A04C9C3F7A935F62E396DE3CA70
D13D013CF9FE23B42F268DB1C00218FF01BE3C952832D52B67AB06EE60B45966
7CA7C22A5CEB162999DB2242E69699E6F8285AE314DAC63A669DD41752149C28
6FB04A5EB47E4C9DACC2C2731ED0DB9F8F330E934889D1C371DB9BECD930EC1C
C1629B21C357157A106406B03A3562EB2B2D7D2EEF8360AAA424E333951DF0BC
3C5801E5C1BCC2F0B500BFA203BE5FB9AE3A262CC255035E1162B84B99408E67
A65F7D610263EBB01ECACC9CB5C55B5749694D3A2D790C950CD70227051CEEB4
14C74155BD21A5D79E35EE1357B1E984BA184C48217E837A2B0E3C65C0FB5890
9677663C8CD37259E9A303D889BBE0786CDF78A71DA073D3305D3163A739CECD
0C9A448A2F7B0E13E29F1B8E3255FB4896D2E763FD666B0BB37C071A356813F3
595783C3350582A3495F5EEAE6808D2332074F3B6EAECE37F5D5952F555AB9DA
24E8BC38C11B2056A39B39A4CD46030DF80C9E1BE36804E62DD7A6966A32FED9
E290268C78093FC3228CEB9A6309758A38B9D4EEA04AEB4BED48E2CF02D86FDC
02F75CE286DD3969A7CAF8CB7262E8BFEC0B925C31B9B500FA3558D7C249411E
7780B16A1CEE30AB78455F41ECC6196CDEA31A9082099D1DF8E87A209048E4ED
E7243DD14F09B64550B4748BEAEAE0A32631F911C7EE3BFB47BA9DC2D3AAF9C5
7EDAE41C69D0BFB3B225598BE81A419FABBCCC361B4F24A6797B498E27C354AF
960E39768B5DABD16A7BF652C42B1D210CE53909E122B7AEE0404FFF1412E97A
F4F7E9157891FACD8DE722B04CA10A6491AD872569035297C1F35476DDBEC8F8
FA5110CE579F4BC4091E51098A38D13A5AE957FB8AA2A533832E6A69F9CA97AE
509A11AE264B8AB041D51218DF84CC7D331BA0E257A3471EB0411891B7F70114
735A57880F6ECC2BF35824FF857734DC2A15C2871FDC9304718415E41B2A65CB
DDE0620F1CDFDB75A43C139C9D72985065F263C63F6973B3086F51EB2F1DF671
98A0713A28A17D698893229D5021B4F1F61458BE5AE53CBF61B94CCA1B212B4D
7BFE0A7BC3AF30B677ACB7901A6973DD382ABDDBD08A68450BBED096A9DE2D14
6BB8FE5D32442B92F93C0F740680AB6F38548EC10F573E3FD9CA6649D280625F
5AE0F5CBFED4BD88C7CB69C8D4651D9502DE08225302C0467D811D93B956D27C
02C2ABB054823BFAEC5EA3CEFFD9F7C6F38736AEE9F5EF0FE2B5ED1307E56026
F002A7EF81F607A1812542BA1C78FF0F14B39596A96BF9A4BC42D76849746C05
93E7221EBD8E1988BDE3DB05953D6B3676F7E83D3C17416B30BDB5BDBF4E82E5
EC466C2CF6CE56358008E0B7C1A63046BDB803D9BCCF499DC54C1708B488ACB4
66832B1465EDB09300AC06373F978C48A9B1FB3BC67BFCFB4BABA9EB679D45C4
3D023ED43D1D11E842C58B7F97F51A1E4B41E2902EF276FE4BA1FEB2CFB4BE71
6AB3CEAD9CF8CF06F577FB7BC2ABFC27541652FA118D922A8BF781F20FCB558B
7DCBC42ED49AFB31E1692C30C6531FC1A3A9BDEDCD6CF2A4C353E7DAF903E688
B7AD56A7D1758DA1472566FB8E715C978684CE2D1CC05DF05A5B4CB11BB274E1
DC70A78036585242DAF16EB613A6D404BCB87B0A231F3EC46E9FB0568F14829F
11D29B8431620C0F54936D36CEB646432B889E22D8641F2167F961C344EF8C09
8850938DE562DEC535AF67F01F4A46E985E547F8F9E94435BECFF930578C4659
AFB84A2B0FB1AD45726C02B36B915B54765456F50918CFD172C32A118EF75F6C
3FB4474A50B3C3798DA5D6C3E86035E05399205E8F97AB169E26D35C86CADF6D
E86691FF9A54FAFF0286AFAAA465DA4DD6893B8C77D25187A577F0A7E6CAAA9C
C360EE0552B126E815C689C45F4310F084E564925DF52558C684A65CDCCE0E26
ED549C9DC7735530D0A1D27A22066FC5C90E7D0273BAE5024D42738EAE0EC5C5
93CFAD1E0D128AC4B3779F335981EC68C12545F14D00E87F2C058B9115826A52
DEF207EB266202662622E3C8490F6ABE4F3D2B6222872BC4E82E8936466DCD85
AE1AB5AB8407FB44C0439BD293D7C536AF2BAA0956893862FC1CD2D1E4985518
1859919054DCB06EEFC1C895548CC73F2F20C4FB6BE74A7980F56D84B9FA9D66
482639DA2581CE2B2417A37141603B198F7F68D0F7AD48489A1E71745AD263E8
08832B3BE2D88AC85661A3F6C3E08FF39CED6E5EB853080C3ECCA1DC957E9FC7
8758C829ED13D6D1B9DAD9C6D0308449DAC6E2E54380416E22F4A1B88213795E
34C1BD99F8BDFE57834B13D44A4530265D6D19B68DF99C4934D2841123FF4CEC
6D4084B0B55C3BCDFE89B671DCEE25ED5B8EE1E4490761BD84F567D28B487EE0
610412C9C1D01CE96318F946C180D44B2E66FC3591220ECD62EBE0308E5B91C8
B49547CA901D4270355298CAC4B63178127ECA5818A567297A83BA01B72F5267
17513D4653BCB9DC893BD4B6DC81976A6A3344CCDF67EDB2C4DE01152BEB75F3
322B999188EC684608897F2FD504E8D835015DA41EAE3EC8B3E5E005C99EC5DA
F4CC0B5733D7CEC5620E611450A6DFD19AD3523703C1397D738FA0CE9C63D003
4C065B5ABE9B0C0DC75D729858F167BD9249CDEB7B9F1028C08015322F2D2513
B58884C2B38368F756A8463851251DA71DF376B55EC756ED92991B2963D92A51
3BF7633E87495E44038BBD5CBAFD394E7831CC6762B9FAD1E78EEF013DEEA1F7
D40B009D665610E7BA717DF069530CD72309802B908316FBF5EACD4A81B6B563
2B4E873DD5B7B9DE9E4E2A46278CD9565D57EECC5073F265CFF3091920237236
3B98099855AD5ECFEBE42D94F0E3D1DDEF8E4B580DFD7D3B197BC01EDB9761DB
BDC6B149930C28784B937C2BC7ED0D624BF5D9575B640D89DB8FD60991A79E14
37D4A8481CD1ABDA328651B716EFBC2BF72912DEC39D3D25593DC686A03B3F14
D022EF984BF8277E0FA474529147F60D2702C80B2FC8B7878B07996E05723BE3
D2032B19AD087AA7B77B3AAC227B8405C5453643F40EEB098C7EB5F8DFA38219
F3F9411C165AC13F3AE2ADDD95C1E3CA8BBB5D673D6D8E7765A3CEAF5A724365
06A7C69AF9919C4BE29DBD8003BAFF9D75BA1D34487FA51EB1AA7807D8FE8619
8ACB68863C3C74ED7FF3B543A602F68A67D8C723D53E38475D967BFE81A8DE78
7F2739D9A0FD9B12DEC4E3AD95D316F8A66FF642857C2CE8224DDACDD40ADCD4
6F1172B2104EFA4004482FF6757EFA288E8896FA925B3241511799C0568F4E83
545499CEC2713ABDD7B7D588C52860927BFF3D565BB5093FC96F45786CC45263
42DEE1D8053A9545637CCA80396867A3F7E534A9C17B79A03216D2F6A9FDF671
FEE9767798D91AD08D663E1833B1FDB38BBB6F8A0B09E1D894B7781F8B15FED3
128013585A38550BB1FE9BA7790BCD7D0BB5281FB749DA0E9C123E2168CFE512
34DF2585F817330BE572B12FFBA3A88640AE5A2AE5BF213562703C0891CD3066
701360C498FB08C5AFC1A0F3F247E7B1079F4E4A233585CDE6B14566AE60C64E
C752378AD555F4A792CB3D980C70546F33D25EF6E8BDB96A15536AB3F4849861
9B6F727F05FE8BF13FCF7360889ACB895188B857948A53EE208A9513207FACA6
30C8A20B24EB497B3E788D6BA072F379B0DCC996B7D00C5114292318F45AB5BB
1FA53325EF1D6DCC4E0D2214BCFCF9373DA0EAF8AF3F0F8E313A542CA0C45365
0132B4314C1C5BABCFBDA5E47E19E1982CAC6681A465ADDC91147FE97211C980
46CC54834020599AF6EC2089971E541A55852C39A850F66CCD520AB296C7A1BC
F422FED5512C803830AB6ADFC755468E763E42BD476BB72BB1A3A76959097329
23FD2F246A1108DE1ACD0A1DA4099E5D40FB1C4E4863AEC94CEA0005789C0BB3
255FBA05A3EFE851E47D1A3B2E736DC4963F42F78C32EB23DC23C24A87ADCF86
60C7D98A2B2A039F8079EE27C373B979CE6E7164AFFB86445A15C803EAE7F5A3
8F845A1C8E73AEF9A4FBCDD394B61B60304235FEB4107CF7746265CF8DE3F862
F032687611C97C1D28B17041668B8C020632979910A1B454CCB946452D8F10EE
0F39C7A12D925BBDAA27D8B5DC8367013C74469CB81C5A198D48AF68DF95FC84
6CFDAB91A117D0B9DD0D2923E7B9A891E31D085089AC32AA85C3120640189B08
3526C7D27C3117EB2EE7F917913E410B9B214FE25958ACAAA1C25272587A6C98
FA7C4E34001DBD617E07D9D0F46E598B0DDAA1CECC46E7150B74491A2588FF6F
B4FC59E0E9A281AE42BAF01CF1E27EF3E41052DC15384EF64083451BE54C46CE
AED1185C0D0CCFAF5309CD8D81973959D15751E6B03FCCF975B308B72E5ABEB9
789493069C5D416545902A15BBC560E594E6443F6558CE5ACA65CF9DB378E72C
999539C3F9066BFD21EAD7097A6C989E5E33755CB140C2CA5F2E5A3B9E17629A
F7EFEF1C60E6B8AE974E1C429BDEC7ED49FB7A5DEF4359F8BDCE99D388C442CB
E10A49F9B4C4B82BCA2FAE7B65DEAFDC92097F6C7D836841FE75D01AA3F0351B
A907C7134A03A0EB0EC77A98BDE6F5FBE1CA40493C51E996BE2650FA5B18AE0B
8A02958BA6EE35EEDB3C483B264555CB7951A9687E4553170856AE914F79AFFF
33B1CA05FAD5F4726D54BF2A25CF50ED072127429EFF558D2DF71E2263291C32
2A153283B90AB59A21F82ACD7B3500823FBD5A530F9AEB17D4415DC89C1D4355
01217178811836E801C400EBD07EB996DBB43DBEDF2AD9B8D7ED878BC19B99CD
B933024B8E63BD72A6F82DD38BFC1A98485B35CC9B2581BC96446FF493B0D031
B9B74DF4FC6F36CBAD9FB5996BAC33FB67542C9B80A923B4D455179D06C9CF39
F02718523EF0EF351435AB72BE4AE7B6E2706C18992905EEFCC5170AADED3E7B
B12E7B4BC617ED0D54A13AFBF4483C05CF283294999B0F0FBEC7AEB561FED466
696CC8675803C100861BD68A006BBA82784A0D864CD3253FF66321F54267B42C
5CAD83EAB35DFCD519A69F74EF55CBEC06DC531F364A03A9C67112A329110357
56374B713FBB6CB23951FD7362251A55A45419199D31B86573995887580CF5EE
75B743FD2F4F818E4BB2A091C170C6C9AA7B4D5C6D4F30C6A4A5EC530C08E9F6
3F4EE4728D9BCE9ECBA65C16DC369832FDE16343A4A00DC978F07AB67824B78A
18C17CBF04FBC83F65B08EB13D4886E62561C028A0182BCAC698C7F0534D2C1D
A836F9A053DA2B4462468B63B4DC4B978A9B80A675C2653315A18CED2FC9E6F9
44E554661FFF2B5A38294F44FD7F639DA9179F7B38B7E946FB97B07BBD19E2EB
A6CCF35D1D66567266711354E19567BE392EB6DAA0752D01D8EE94F013F8C510
AB329249E0C4E32EB8CA6CB271B50424E294D34F635D8D8286720E1038D7DA84
02E52C57D382363DEAABBCBA84329F95AB28CC8B275BBCCD14B3511448838940
53F0B60697024D681187BA71D429A3D008CCEBEEBE492313D2C4D07395302B38
E6D973015DA039BB07DF545D824791E2E3788282C275331D846723CE4F21A16C
08972F6F03ECDDC83384982217FCEC2946F45E06BDC7E126C8BB8CA371FD5FFB
7A6BE935B40F51C72CA19870529E5230B0AB453623FA8FBDBE28056790BD83DC
3586FE81E027A27EBF293CA9A38ABBA5F07281466239603374314D2E29B44E7D
9E75A72CA8A872C7354CE32E7719508B0C2EF9B7D8EA7424957C2FAA0442499F
7D0C83D1C7BB8FD810BBD52ED152C75809571D27E9FCABC2B51F84A313AB19A2
B879DF0F43A476CFA038C3BFE5E59E5664D3BC19CFC49F7216F28BAD707C29A4
61CE09AC501B6D3A7345605EC37F15AC1B18EF1F5FE79C48BB9C51E38A6508D6
D6D3FFEDB6E5E92F2EEF7B6EDA299ACEE823DEC76F06103C0FED2277C750C8EF
01ACA81A505AEC934BCD1BF26F3C134D6198E5FA44EA8699B7E6948CA8EB7483
143928EB23AD4DFAB5D690BBF6798AEA6134E9C1BF74E9D3BC766DE328C16E2F
E45461C47D772BFEBD6C8DE4D01D18CB8078B6F2D30A398248F1021EE56001FD
F03AA2D015DAB260A58A9BA84B783CE539B7C39480863C01D4E152E125B6A143
A0C7B0CE1B6346CBE49200DDC64E70AC2261A180DCD959D0E9B7E77B8A7B5E7E
5DAB0CB9AC6863655B6A53CAE12440F9439D7C8E8CF3D68AFDC187437F8D413A
2955B369C8D6F5DF8B4BFDCFEF6E16ACB0E659992CD611F568C2AD224A35545B
5DD771EAEE408A8CDE736AD02D8C592E1E6651B531A80C9E5683BADFE7D8834D
5729D7777CE493D35B818554BD7FEC0074D9CCA3129E11E24795B5180B2956F8
FDDAA992081C424F33180D284B5F70B240C065C25866DD92B6463211B2DBA0A3
8C2F390FF20711AAA4A21470316FABC17C328C119A7F92E8CD1A3F1134BD1F94
2B65B9DE8AFE5F9C6E711EC72E804C76B5335A4385723B4F9395162BDA5079FB
B9FC76AD9F44125FA0AF4CAA725A1B311AE68A40D7C0D646DB59BC258088D5F3
6980B47F59D910AD0BE38001B622EC29EC24403935E419BF6DEBA70BBA2D2452
B7F5A41DC08F2A0858BCE2DC0D671FB970FD40A1E7F4E8ED8124539C66A76CAF
0F7904591756B5CD0E3241B2EC6A884662471A57165CF801FF9AF1C3B12260CE
BEE1BC1F6839CF6094C0FC4AE3A639C175F03493E09D0FE95D3EF615D0B8C1D1
A26683FA8D60849061BFB89CFD293EA7BEF03532232623136CFA1805BDFC6232
1FFF4432CA4FAF1B25BD044981E13135B73C8F78B6CD97793C1AE39D8C8122CE
41B04B34953E416AF5C20B5F8CA1DD54C5300C7756C3920A474129715FFE51BB
7885B9173155B33E16F93BB2A62C25A6942A106435FD7959320DB8E4E43B9D18
873F7863B4050E59529B57C66D14C33AE6D350A9D5A5F371565158CBA35CD977
1686014280D67ED225F3082022A38C553F2B238E06E89ADF53281D258DBEF3E5
EB8625EE6ADB5EF21F971C4F5941CD3CDF2BEB11B7E187FDBEC9FF8BDF93995F
BB89066B1A0EF5E9B87C44FC682D5963E25F659DA6C36E0EB3BB4E56E1C3280D
71B39470C3D890B6DAB74250FC3F40EE4E8E965D7E8197205E88C56AD33D893D
193CEBFEB9AFC76E3F500B21C636C23203AD5444EBCA51C2DB5970D7014E238E
83F007EF62E03A930AC432A45E59D1812E2E2D1DBDC8A544DC6B5B70CDAE6C8C
747D7D87BEE0D39918E1FA0D558DFBCAF7B7DFAC56FE33B18CA89753AF288D1C
ABE849D2C39A588FB603D5F97E114E5BE48286F3FA81CB93EB3C26FF9CCC80F6
1EB1EC1097DEA5E77C4781ACEC193B332798DE8C35D212BBEE7A17C0E1187BA6
B5AC8F472A99588D0AE6A8A0E48D66AE65B3A8035FF791DEC21A24E6E3399FFF
8A0423B25114D0B8D5D1F18684154C1F03A3FF2C34ED3592361B3E6676BD2DF2
B76003BB53B99E87526E3BCF73EB441BE5E290C540371242CED437B1B761F631
ABCBA464EEAB665093F21BC8F0A06F16C9BBA81D86AAE604D453982544111EE2
548156A0CB73540BA914475A368A98E4D077CBCB31EF798505BC5C720974D3E7
57103F659E980B0A01073CE5F22CF7E2BB39454E59CDF375BAF47BB0D7673A3D
7BEA3C2F6667412C48A16F03343DB5A99AA3E2CD38D750E361FC2C12F49497FC
95F8E085545AC2D4337AE2B14AB518959220A94E739D3F895E1D084737408FE3
F8844FAA358941D4A53F9B36CF7080814B79777A89CD31B1A0F42253D4D5B05C
32175307C3E470402062F019DC7E634F1D85481947A7E08CDDF5C02557568E14
DAA8982271655C573830B5D3FC62D1B6211C8E4D737767D6699CAB052B05040E
EFFE8AB43015CD1C99AA1E42BE24CDB19019EE1CA91B9AC914CF7D73DAA4D567
2DEF8485931CE7BB2E7F7B65EC63DE61C3BC54B398E39F32275C8BCCD02AC283
3058C33B3745286E5132327DB7617E033F1C5F450BBCA25A6978C60CCFE0F0F3
E8FBB7029BDFDA9E05A39DA7C14E3F2775929E1AB1E789186177532121BDC2C2
477AFFEF7B1D985D01E1185C5A70C73215A848C3B0EA57F510BB404390A59709
CEB7FDDAD17DEC82DF631A0F702024E2E14B5488BF8A8826D7F7199FF1644BEC
6E4017455BBCE047669EDC01EB375765C031DBDAB9B618FA2AA278F202A35D14
0F9B148CA475340FD97BE343EF1B0B27F2A1CF54482CF7D3DFA1C1C4226470E5
A25E9B589A8FC9AE9EF66F2B83FEA989E0CC7B2BD6FB00E927312495A029FD55
567772C0F246E59B5DE61CC39682476373DA763FE25BBC4967B1C9A60E4E0892
F3D2B9FA8294CEFA47E234C7260D9D7AAD927BE8EAE81F4E20DCFA31E1404297
FD36149405A155E9E3295913DAEE321C7810C709933951FB45E05F2FE9E6F92D
07DC521BB9406FF14B35A8A4F92A64486BBA70EF8B36DA3550F7C8B9B8C244B5
E5AADAD14228B23459AB228DFD060981BCBB46CD67504EF148EB9B1B50C2DCCA
781777291746C5C804EDEAFAF6F6C1F1E129E332FEE2B47C887561C18F4B5079
E5BB0CED06EA09B7250E67A1BEBA0C06E52BA53EEAB49FC096B20E496D34F1BF
57E9291E6D11B1C560034DB9C1367B19318D3C2FF93E4026F50665CC3DCC0475
FD3AD8DA1662E1025D1D3B65BD6DE49E406EB8C767C977D682327399C37EEF7D
5C93FC7DBE6034BD1496FC824E07B1FD26AB1511C56D8DC7538E0696E4A5C1DA
BF62724D58B1F02E2798BD28CE9384213F5431589782A6B900DCA58FD4B93ED9
A9B074A02488BA87B245345A25BEF00AE8CEADBBDDF45345AC25A30634B81DEB
DB3C90BD40302C9B77F06120902F647176D143D7D74987BF7254EC665C954FB9
BB3C7D0D186AEA3E2E4D148E15E94911609AE3E253FBADA1071E4DE607C0BDC6
61E862DF976BF6F2B27B56812535E0200142DB0D4601C5E15BF27FA81D3B1CAB
B26DA0B346C7CD562BA2DE83EF22C02B7CC92BA53A46EBE78CEED2197F03E532
CEE2C8175054380556FB4B0DFCBFD1A150A455540FA1CF090CA95C91566D47AA
9C4E2D56D03056EBB289D9FE45A8DC107E23607D49A0723A289D0941BB317A19
9083DE532B7F7AB96EC5EA26EC1F8EAA04BD8A20AB55D937D5F562E0BE49FFBB
1C16AD3805927088A057A9D4FDE1A95ACA047B94E0DC3612A73EA8EFABC16E9D
2DF35861AC15B5B49000E6EF592A9F25CF0F42036E2C5CFBCD16966CEFAC3877
DAA2A88552CACEDBE6E955644AB7AD595E5F2BAFD31A505EBDAAB4CC5C7C3CDC
9F3BEBA13A84D787FD6E42135FC84864279E05AA430E14937601270A7BF1EFED
AF303196E9C1BE6AB88F5E67253E755FE629331B4DB2B2FE91D70D6B51DF6318
3C6BA2577427E1AE18FCC9B8F5D87EA8A01047040F26CD79B866344A58887840
427773BE13E723A856B0334FDB4012E90A3D08EF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: LCIRCLE10
%!PS-AdobeFont-1.1: LCIRCLE10 1.001
%%CreationDate: 1992 Oct 23 20:21:59
%%RevisionDate: 2001 Jun 05 20:21:59
% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.001) readonly def
/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
/FullName (LCIRCLE10) readonly def
/FamilyName (LaTeX) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /LCIRCLE10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 115 /a115 put
readonly def
/FontBBox{-2000 -2000 2040 2040}readonly def
currentdict end
currentfile eexec
D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21
E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2
0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495
DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F
98AAA04894F5487C279D2766B50B23E16D7F1023E387FA4165DF522DB290D390
B669550A43638C3C9CC38C7667A22D27F9DB1542620110A8671B2713C8DB93D3
4C500474AC190831F9C7441DC4A7C27EE88DAEF10D7AEE6FDB22E7625E802B4C
FCEE0DC79988734BDA39B9896B1833D4BEC4F91DB321F343F57B3FC5ECA13AEA
AB108165934BDE65D2EB5A62BD395AB84402D4A2703E3DC3BEC860D5A4EB785A
1D8D0D1AE7D31BFCD3ABE3E9779B6BC28D93CFCFD8461032D969F1C9A53A6DCA
321062C6750132DD47444F208275E5000794E261F842CA01FD5DCA6F8C92C7EA
E2D8D66ADB1194BD8AC59E9191895A2FCA88F32DA2B27717F18C258EE2402C69
5655EE4D15708452687828A90653E9FC2707F1E9ACA413DAD6E5EE607F6DCB97
09B7195203A395C97CCC7390F38D69AEC6323A0AAE0A05958B7987701BBD6497
F95D8653699C39F179820FB8C2DBD7A4E7EDF03E83F7536946A3F532650AC5CD
48C10BA3AB8F67915EAC0053592CA317E0A8EFD1322398DB7D9B32ECE97791A0
0B49839C58E426531833D30F153863E92A79516C2878AEE6916F0FA78F94714E
D709C10DB24955FC0DE6769D34E4E1DB2ADED1775C5A5A6313C93B6A0195311B
4A334B4D9B914EA59194239AAD1358BC269B8CBD35A7685ACB29282D46440A38
083B9CB2258BB81E2489B5FBF551AEA1330D4DF70E9E650964A369CA2F77DEBD
0CDBCECDD2DFE4EE609FBBCDF40F1331636EC76ACD1DEB43CB2F3F0EFB6C4AE5
49B410DD71B0398448D8BA5E2F5575B2411CFC6DF4CE8B846D16439B341B048B
A941ABD6FF30682F0195AA163C374E01620A43763E346EB7B81B489B3C356CA8
B454298ADF14F0E3A18B20F4C3ECA39BE27BB388EE635F1D202BB53934F0BE89
C82A79A467234D91754E8F8C94F697639EA81158B71CF6944FDAA9B66B2A5546
10671D36E04EAC1B01AE52E2DA13D2D416102E1DB17BE04A95CC202454A11FBA
277D2F276FF3E62A5353105FCBB867B527A54E88A4D2D84C8DF260346E48260C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: LINE10
%!PS-AdobeFont-1.1: LINE10 1.001
%%CreationDate: 1992 Oct 23 20:22:05
%%RevisionDate: 2001 Jun 05 20:22:05
% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.001) readonly def
/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
/FullName (LINE10) readonly def
/FamilyName (LaTeX) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /LINE10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 27 /a27 put
readonly def
/FontBBox{-150 -150 1020 1020}readonly def
currentdict end
currentfile eexec
D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21
E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2
0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495
DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F
98AAA04894F5487C279D2766B50B23E16D7F1023E387FA4165DF522DB290D390
B669550A43638C3C9CC38C7667A22D27F9DB1542620110A8671B2713C8DB93D3
4C500474AC190831F9C7441DC4A7C27EE88DAEF10D7AEE6FDB22E7625E802B4C
FCEE0DC79988734BDA39B9896B1833D4BEC4F91DB321F343F57B3FC5ECA13AEA
AB108165934BDE65D2EB5A62BD395ABA20F0389A1B71270649CE1A93B29040EB
B3166F9EBC3791671B6EDCEB171F3CCDAA90BBD5EE5042AAC2AD6D838F79E008
43845E5FCF0B3D71E21543F491832420B45492BFE5D3E278268908D3CA704A48
AF6C6954A03244409C49A178680D62BC6277BE6A8CF4DFFA69775BB8FCFE579F
0DFD00493CC18A38F7AA197A43E96F5986EB21F77B0C955332C87B18A5F72982
E3D0B0554AE03D86FF10237036E2CBE514A9BFC5A4F5B2C9E5667EE2B64AB536
766C45D847C52B75FCF57652200536319F09D0FCEA025A5F5CA61CD63812083D
CE11E82271251C41D0550CF754C13A32F847CC7ED53C14742D3C5AF8E412E542
DAC233E8C9FA03A4ED4BB95A9B831AF45E02D31003517156A429F54B6E1B1727
520DE349B22A26C73A2D3CCE0733F2E594DD8E091E2464A31B86C81CF3616399
F042260B75E2F3010CC15E843A7F7388C01BA40AC4E4F1D50059A55BB5111089
F167B796709EE54D544E1AF445A3E791EDC71A6D6F2F298A20014956D52138CE
FB138CE99299A8B41905FF9DDB90B25D0302D104702E1B60C3704797B4F064F6
FC120A753733A93C6C6F43948F450E0EBF8546AE92FE0AD60282163CB95FB2B2
EA1A32CF53F0231CE6F761ACF3FD8E72D30897CC796948D32E6630C2B2446465
68C5E91F24A0FA5A185946D9283700FB832B82862BD070653A5CF06356391F36
78767C9BBFDAF9D7A7F56E194A53127E6DDABE736D2B1707DBFBACC9A51E381C
642D845DB29C9595987ABED83E7338E684B63B0991C91FDC8E8C83AC54A946D6
2691820FE9A23B7F37FF950C20437EF7E214C2091CCE57D2685007
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: LINEW10
%!PS-AdobeFont-1.1: LINEW10 1.001
%%CreationDate: 1992 Oct 23 20:22:06
%%RevisionDate: 2001 Jun 05 20:22:06
% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.001) readonly def
/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def
/FullName (LINEW10) readonly def
/FamilyName (LaTeX) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /LINEW10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 24 /a24 put
dup 57 /a57 put
dup 88 /a88 put
dup 122 /a122 put
readonly def
/FontBBox{-220 -220 1040 1040}readonly def
currentdict end
currentfile eexec
D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E
F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9
1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538
497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21
E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2
0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495
DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F
98AAA04894F5487C279D2766B50B23E16D7F1023E387F60757E6C80FAE85A8AD
149D104B38BABA49C58CCD52B719D635E892DCE74F3D283407537FE6CF45E192
54BF678237D2B8B3C0AE474E96765078627EFAC8AA84DBF87784E5E755C587AB
BE50DF55D35CDD05D96F562153E2016C3D23ED27DEF2C3908BD0BE882E838796
BA837E4B671E2CEC2471BC438FAFA0F4FA9D004C64F187F897B89212356640B3
3661AB6C36FD6C98BB4FBCF5016D9C6ECC317E76CA0CB5E739017091C4F3BA9D
AA0AC0CA3DE976094AA0C0DCB079008241EC2D1CD368958277386F52D7EF4AD3
581A6658E5F46DA384CAC13208485723CAA3BB78E33D485D545EE7D9197E98E2
53937C88E0A691E696912A9CF4D608936E212C18E3A1A792B4255891642599B8
BF60A177C86186C00E2E0220FB80A0EEBB1D115B275FD94CBF960E1705EE0C4B
6938170DF6725216E76A3BE36F23D1DD3530FDDB409E758352FB2EC5D2EF0265
B48A2C566E252846ED6717686FD6E86946CE37C9A3493C521DF4EF527F87464A
5E36DAD61032A752C75175660A559CFA480FF4A25C4B14BC7B27B42314218445
FD3DB330A46DDB3C8A9F386855F555961A476077CCDDC68A26C1097AAEEFF530
BEE89FC2850256D81DD96003533789A77B01967B7D0485CAB1FCF1977988257A
0ACAE84A584F9424F39D2A31B1B8493F9991F4E01C0B6647A3A78B80EC6A0E25
E6E3D2CA32C4C7389D7BBA57C12FC00B99594E3B7055A2E28E9E92976F493150
F2A88A918EF0CACB6995435160177D9CB282E8CBA591F681EC849CD5C4FC8E95
CFE332DA5BEC9E30E16C0B1C016D07A97DD2ED7667664086EA8F71BB65091EA0
C1F160185747451719C88C7686B1088D9790DC2E14FE340911E7D8A71AD8374F
0519E8429D3B9374ADA7A856B8389D273F3FD3FA06EBE0E1BF1357BB6BA8CD1A
45597B3FF1641F8779ED6570C61EBC971294F6072ED097F239E2A482E81588CE
BC3044C691237F9157EEE13EB86A613DBC298A59C04ADA7E6C6DCB5804206C30
A755C005872D5D0A41AE1C0C1020B1421670BC11DB173A0183502DD8ECF3033C
5E8A3A5C692E1DB9328CC6DB42C069F9E1A57128926FF71A57429DF723DCDA98
F3809C2BDB63C6A48CC2FC1E9B0EB5D657F2132620454B4DE378756644E5F734
C92DE3D488CC55B4F802257D139FE1E228E098C85AFDCEFB897CEE674A1EB810
7C90365D7C133BE5FBF088915D04286E350826E52BD6E20D500A7CBD517DD8E0
60705B3AB3C6F205EF92A9973C17238B9D9769115A58FF3951221E5CA0C3F2B9
6A565E2348200D771F5ACD85DE236D55C81C05CC7595DE2518E591DF15973E56
47757C9EC563D8CA
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY9
%!PS-AdobeFont-1.1: CMSY9 1.0
%%CreationDate: 1991 Aug 15 07:22:27
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 102 /braceleft put
dup 103 /braceright put
dup 110 /backslash put
readonly def
/FontBBox{-30 -958 1146 777}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D0037D33F24E2FAC2B0009AD3C8350CDF8CC
65BCA87979C36D14CB552E9A985E48BE4E88ECA16DF418749AF04FDD2B0E1380
D281BB2476BB45FF30946B247DFD7F57305FA87E50CA338121C71CDFDF927A9C
77FF14CB4A1D6D80356FB1171ED38C37702350497B44E42CE31DB2F493807DAA
15B887C671199A54C4C1294BC520F5538C15556BC43C9F62342B121C6DCD6C5F
491DA47FF360201EE21C08A781ED0589A6DF91B99FE118B9B29E4F068672E52F
1A06C514D91C4C937D4E642503392B1CD1B8F5332A2C13884EB17C99A3A4EC0D
3790FC136CD1C7EBA960DDF607095E8CBB126FFE61C01F66AD0F319A68327176
81A0115318A17282DBA5C8F5C1E0702C9E9D1E6D2C9D94A2D4E1AA58ACCE7E13
923D4BC2EA096904644F2549ADE930C0A83B3A3FE0CB175C5E13497A79BB8AEE
EBEFCB8F91CA8772B8CAFD035BADD776E7E58D08B5D76588F43F0EBD1EC11941
65395C98B2677458651A2BCD547E072B9B26210185F17701F1F2C8F0692F1BC4
E82DF64D655ACF2A732AA5D02E2C3CCE32773B15D6507E35D8D64F754990835E
60212F834333BEAE19CDB8C9AB85EFB419B054238FACE4627B74148DAD822FED
1382A18B938E7774A2182818E99F18EDF3EFFF017193785F5A33236594B6630F
0727A664C5B0F909F58972EB55A9AA37AE9F5E7FBAECD344D43469D83DF82185
3F5537D39097BF8DD237D89A4B09DAB7F3DE975DEFA6F3512D99FEBE29697EF7
87F2231B807B6C6513CBEFF2BA275BA41481E0B68D82A4374B98A8592583C7F8
C0593235B6DC1FD00102A621BDF886637696EBF73981385D265441A444E5DC52
6C55FD47E75291C59C6E8365810E2E3D6C91DD78317EB288D99CF3C63FCDB102
9AF23CBD501E186F38786E64F7F0FA3D59AB37A11147E0429C8C27BED0ED4708
03B230763A620ED3D786FEB059FD74635A98EF10DAC50295D12F6FC5833DCA32
DC33CBAE7B178391BDC3E86C898873B2B6F0A6B925B9D30E4D51BC120E716023
858BADFE7777DF3405A68C4E1FACA7B4BAF7ABDA1683BF42BB103A5DA631618A
3BBA9B835D18D27FB064A3E4F30E9D810E700B9A0ACA06589AC254A3DAAC7F89
4C92A219EC1F5DB934300E218A9D0D539A1A37FA53002ADAF0F5094486ADCAF3
26D40CDBD89926675E1FD2AEE5015FC90C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI7
%!PS-AdobeFont-1.1: CMMI7 1.100
%%CreationDate: 1996 Jul 23 07:53:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 110 /n put
readonly def
/FontBBox{0 -250 1171 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
889787CDC194F782420BB447DE705EAE7963391B36647C8B3796E8E8774CD38D
675A89E8D077644F37FBFE9EB36C5B4455A94D61E2EC58C4544B2714F8B66FF5
D09FF25507481406F93BD74C2F14785C9AFFC6458E10A133E0ECD17301B2B5DF
DE0C0D73DED3F4BE21027581FC25B49D6B1F1934F8745C4CE9610BE5A10F91C3
561C994E4BCD46A084D51E268092BEA0AB544F91C9CA2692A02575863E04350D
23051121C2B09186AE02C550040C09905EBFAAB4859901E0D1349E104862C122
65A2855C94549313EA44C9D9F1B3EB99D644FA8FE08D5F40A506639B0344B894
882ED4C0BBCFE4A30B6DA93BE0DCA9671E984F279295B45C8DED7D77BA7874AE
8B21F1148B253610333230100049EEBB1D4D58E17059C374AC2AF9CEE11B4D59
A7281AB04644DE042145245F04DE6CB5413889575CD415C721A7C18B3C3FE177
2FD7256E2E686938E36AC765FAF48D83C561C2E25807CDA6087E4A3B1E82216B
A3609E28E6B58E3F36CB36315314A72CC7EC4ED8CF2E6761EC6409A74339CAF5
D148FFFAF620CE77
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 32 /suppress put
dup 39 /quoteright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
30F37B1F54A6F23CDDD676311856109B27246A09993752032B75ACC6FE0E2F13
17E0E4032886F6BEFC58D15FD6133A24BEBF4F909AAC4734902E4118B92C95F3
0A700FF84E87BBA094797B3D4B83A8F3011193BE6AF0D3251E1E96C4672A7569
1766A5939938DD277FC632AF8D9A35FD9E80EB2951C88088C002FCC7517FCA69
DB6F94D1EA86A4C49C5F3F0B81795680A56DB893D89CF0D181440CE7CACA9984
228F30591606BA159027E682535D06184AFA38DC58DCFD1EB8A54C7E3FDF18BF
0C16763E78D1AC9CD0E062A1217002FAE9BCD36651CE3095353B184AA3995562
3D8338777B67235BC1C5AAB21FFD2AC97E8172AEA239278EDE1B9CBE47074507
057ADD5E72F452B0519F8B7F5C300BA29EF630F97D7DF892BB87FDC3CDF54C03
72B97CB9A65FEBB8F811F430C72C5E41436D0085C3A4E1EFBD4AB1B1E275FE27
7DC53D17B80C76A786478696B77C688045F549791537E0F81575CC98A2B6441B
C0B97F43BD407F3EB5BFE5AB078CED3B016C20983EC27A921E124DC5B02FED8D
9DF2208B36255EFBB41D8C1830E42F3C3B2068EB9254BBABEBCC02F7ECFB676D
4AF0CDF9AD344FE9159ED7B5EA931BE0455CDDEC197E2C387486695B309A944A
8B34A02BF3754FCCC106C943B128D4945A34B1356833270A8B47CEA61AFCA09C
3C3C0281F1EE1527F72740C6B98C5163E586D6015858DA6965929D199AC012F5
C73D6565DCDBDF287612B6B5D84BED2815BF7C7033C4C30EBCE2CEA81AAB7086
721F266E15C5B8C3CA42470BD75B806C029A5BB9D32FCB55BFC6F0A8BD5A7195
E8F6C4A4D47F844639C2A4AC7415C39E786FE5990088039525C623B98FA38FAE
5790622EB5EC03261E14FC67E79809EE8E454EC1104DD491384BC8D4EAC2C99B
D4CFA557D43B03649760A6FDBD236BD1B0F23B237E48E266086F75D5418F96D8
C982A200BCEAD9F53D3297687DFF022165BDCB11A216CE2AA7E77CA0CD318ED8
92631B2BB6682E6B62C0EF0010A5B1788F0C207AFC33778EDC7A811F8CFFF07B
445FF5383C4F2EA5FF156ACE5EAC0C477D22DFBDC3840A1EDA07061EEC6FAD42
F3BB8B0EBCC4908D8636B749FCBAA8CD3A28A5CA074EDFC9B5BCE2551B858F2C
1316936C871123785028D5E746759CA5C4524A949CAEB654154A4F11827C9386
7E87971FBB740D38A588328A400D8C67EFF0F280BC64CE02B41CE7DEC7F5059F
6AE877C9C57960C30D4BFBF25CC98B50C12CE233E83DA90DFAE517F83F20405A
3E758ED42E8F45928ADE2906F770A05046CFB301BD9FF41CDF5F8A3B83846590
8E455B8454A5D4CE8210D753D8255CDC515E2EB57000EB9CD19629BFFE82426A
03B8738F78A8FF8BABFBF6CC8A0CF4BD3C91E0633C82EA54B09554FD9BF425D4
10683060E430EFFCB9F273A30E746C8693D2F19DE2AF72884C90EFA3296CC55E
A30CED201ADF168AC4D1AC8D82EA5379DF531885864444A7295795995069378D
66EF46874AAF684226B267473E4FBD1C16B391FD1C650FA19E24B2D0B7A38249
1C34A4C618286476130448BBFC9F1487EA685A8DB21788875B42F6288F744C55
BA3F3D4D6FDAEE9F828EF040DB17BD47FD35D91B4A4B4F0D842A6F1B118B4B9A
1F5405F56DCD901EE32E292BCBD34365D37DDA3BFB75F7CE5559DBAEEBEA23BD
B7ABB923A1B6A03BF26B60B4B5ED1CBFB79F94A1F737397FFCB2963BEBE8247C
F9F3134869400C10AF57926EA0B996C3840D14E11B1263FFD00E7D87879253E7
665636A5C5ECB499937068E7166384E902A4F77422965C5888058D5ECC378D54
4355B2C352850391C6A7BA2299072607CD06148BF05750DE4AEB75049A9F1EC5
C7D6B9217BAB1E8CB48FDE4023B126D0E09240D5E15E091253172AEB1D93F25B
46717BCB5F0C118E29EE8EEAC4BBFEEBCDA7DB9C4AC08FE7BECDF3DDE4C4168C
458D55D6A0A52731A878244BDC9FBBF0D339DEB13B465CC80DBF7437623B7D44
F455BA9FA9D0B0DE72FBAB8961FF5163BD57ED1B5DC15568B33D0EF7762CBC64
31F09F0C9BEAF57C082D760934E4D8CD0BBD01A289A9F217F5CD95536CA938EE
F671AB897B7504CA14CFA568B8FFC8B956AB649895658AB44A1FA4C898793EC8
06CF0634A7FE8D9633A14CFD77421B33E81A4433E91D2333D4BFDA7800468566
82DB6894B67CD88D14C649CF22FA007A60E37548B671993F5073DA2DA98CBF17
D7675C745E469ADD09D7605EBE08D9DE22E2D61837E0020819CE73F9D8FD1E06
1E9609C026EAB18A2AA8E07FBB9ED2FC96F296DF51045A0A29D1E5E12DA37689
C6CDAC18704A20414C77F119B98872687B75239AD6D553DA58A30BD2D18B6CC4
944BD34FDD48BCAF06C14CD5E762804FE6D8611D4DF5B97552433DD0653022F2
78EB0E43EE46AF70DE7E0E7A5ECED088BD29D4098F4F8F9E2E6F44C60D22DE8B
2C1BB1916CFC03C6404064A6FC53FB4F3B5FB7636234FAB548D855E73B4A9D45
917DBCC3EDDB310DDA3559FD766CF55B5C4408105FFB3EDEE974B727392901BC
FAB4B7C806DA3AA83CD37D0A8F1800AE6E299A63FD36B48982FDECC6006A5358
7361EFC93A817A0E87656D2AC5BE9DFFD30FC132AF0FB64EDFAAFF37C18C24A8
41C2CF366F8FB9147784212DAC74F0DA97CA708B2897F98DE4A850B60445A7D4
67BB7C730990DD153019032456DF4E39027C1CF7A28F2BA507C903ECDAF712C0
93067AD2C8199D9F0E4907DDD269169E7C71BC908436A6C08EA4C17B566E67AD
944A54F7BB93BFDFDF4B77EA0647D7539A190B09ADA35FFF40CB12FCA0A63FF6
0C883C9C56FFFC64B8FAC4C2D1452E3A99F6F7D3C473F715D34BCB243E3A5F20
17C16A7DFE8478751451C38900B500CE6478D488856AC4CCDDE6DAA5F28F6A76
E7ED16D284ECA08C3B00B9160B0C4EA4F491E16DDF9471300F19AEF4A513F0AE
28F4028E87CB2A1E2379525A657EE04384932EFD47365FB03AFD3EEE5CDD2C3C
050D6B0ED459A330A393A18243159213619A3815BC97462D658DA12A2061800D
ADCBF0DDCD48BF9CBE341A5E6D3463D6F2152717D49AC2B7A36FEAA896C1BDF8
7BD4273895E4BC063F464AB22093990C93330454BD1780CE38EE9D94B9A79F9B
E397DBA505A711CA0952AD136970E32C87B587DD8ADC686108259E9001411A38
64D1BCFA4DC37CBFAB91B35B992C8CC8989B3A7EB54D670BCB4C8024F8E28035
EB12653D080F44C2D40E10EC210289A3801E22B1F82BB4E77EA37F19D6E30B85
C5460B691D2FA95022EB2F6ED00442A7AFD17105E259BCCA1647FBE56291CCE0
DCAE442FE8253D9D78B92B17331F3456E6DE7CFC9E3C6ACF0D928642ACD6DCF6
1F0D70700347DAA317A02157AED8F25D6037C7C1BFDE65F110C7E569B4E4448F
198A68530C67737F5A78A4C00F65CD210E9A10C4AFCE05C8349F95C16911FF2E
391A9F521480C8ACFCA669280A1DF1B7B588A74AB183DC8C8A762F8417431E57
B67D24BFDAE23630823C5A5283EDE1ABD7E2519AE223231B13180A72F61289E1
B621E00D66443489D48FAA0C4AF44EE0A70FE36143E5191C85B882326FB27142
8910A17EF5A0077B51B5791DA8378931AD1208F29437111E149C7A61100960AD
1AD7D42A06C7B9C6FA1829DD9AC604B9AFD42E7033B9CAC306B8B4009F9F917C
FC04E5B90F830ADA737B7846EDAF5B83EC66E4E6FEAEBF4826A3E023DF10A9BF
150E375A415E4E85DB49D4BBDE9B55379F8D3F60570FA9E37E86D7271C5D98F5
E0FAD3C4BA82051D1C0318D60A6B520455187D5125C88785B09DD9958FBD499C
09FB8EC23C4CF0EBB45296CDF527C573B5E644A77D6FFF58895A7C771FFCEA1C
9BB0E88D95B47B87BCEB7DC5CD399CD0F8BF616BFD716C15BC5A0697204AEEF8
10C3FAF5EF7041D119DA27EAE13E16A8A7E8D15EFFB7F32D2A0FD341A6C9E85F
A38FCAF91BD11F21691833A1A878CE1571B812BC76307495A7DD36EEDEFB0661
72209CD31C97F9EE3BC605929314D42420000FD05810D12DE2379E100F2CDC9D
7239BF4DFF9896B1F880F6449FD282DE0E09093EB02EDDFDD64B7ABF7432E487
1D528EC46B5E4BBF0795ABC0EE1451E537CEB8908A95E752AB85510D2763B6A5
614E2B88B5226848CCFB9C7DC010FDC0EA725FBDE8AC162F804A40AD8DEFD949
9DC9F0D3064EE7E3209F6EABE01D3FDC2500C8E150CABCBC6AEF8A7BDC2FCE71
6B658AE44414ED15234CC9E88A2400FFD92753C503BA667F4230510EA3CFEB9E
33EB0FE3C0B2352885FC6B0D68DA61951E3850261409CE066C651CF2EF958676
5952F6E3374CD53A579F4AA991224573BA47533641454A167D6CC2D635CDE378
761925EA24BD028A014CD4581B022AEDA6FC05085551C2F05F5691634495EBCF
C35E0E6BA690A2A7D85E1C854BA0B57C7841FEABCA02642C8A0F5AF096C11925
28773934BB3B19CD0160560D31DFCE023B6A1AC30D39B9EF9B686930C8D75249
92237E2C8C31CC5AF2511A3D11C5C62DC1B751D397B492D621D9CED065AA08F6
6711E1FF3844078A8EA6B27B1972DBDB5DE66CFB959000FC1A29AA614783B230
C7481A87D6A37A3CFAA3606B963CD979B770D7717EB5F0294E8C03D4D6F6258C
C177805A39E20EC17EA938BC5CA3DE38CE0745D4FF80CBD06ED7EEAB7EC0FCA9
AECE215E82D7BCC5654B218D0A674D73B5760FF343FB9C3026E619F733FB0921
6D94A2A8C982D9AF6AA1AC3DF1BA4BDF2D013FDFFE7303398D4F7A21A1A5DD93
C27BCC2B38726F753851CB158E6137B1617D4DAD93139AC4927770A6643A23EA
AE29702825F78A5CA1FD28FE94B9904E6D5B0EEE95FAA2B49A0EE15DDF2DB157
C0A9C0AE24A74438113C8D1C34CCF8F5E67A96485F9E7800DFA9F4BB193B5061
FEE6AF0BBAC8E03BCC217F7B9B385839E167B9C846B1EF48E5ED4435332101D6
93B520E928258D3F78D8866B6BF1DDD188A5707C9AFA3DF2F2C70EE0E8EDB0EA
91AE7CC999FD59E8C7198DD082B64B94CED9CCCB24622E806198DB447FC43929
033F68BAF90BB7025786C2BF77FEBD23635029FFD950794AA6998704C722CB49
680B856EB3B27CB434F575C58FBBB5A698316CA838625937B58C169B1F990E12
EC335E75CBE58B55B381A3494087E23E91822815BB6B783C768666990D47A9BB
62BBF3D640B705E334970FCFFD57C42F42A3DD48F96A0CB24CBEAD599E6D2B4B
601037D64D2065316A761E9E81D33D5C5E66AEB66DA6F5EAC63DB6F3205E5CA3
F20EFFBD38E2A2BE4EE971DDCE8645E53AFAB9FA5048C6C333E3306107127AB8
36435041FF708585EEEFBA781643EA53AF5586951A796E7EF787ADF15EAF1133
DE81BB3797A7E3D7D474A3134A5439F665BCEF4BB993A610372C5205DDDBC420
123E2B2FBD7F55597994CA93DEA5969B7DB696B8F7C42A259828FA52E66398D1
ABAC07D6A0231209E1A2246D3B9FED41EDEB554A5ED9089A1CA6F3A387F1EECC
47E2E868B92D1506DA44B57204745DD28B29B96FF8D551C3796DB505F953F845
5B504344D6DF7FA9CBFC769BA331A7779DE36A76BBFD6073C603655A3AC31856
B46D37B3A3727B6D5304DC906AB52ACDC94E525506CE047CD0970717A7D5863D
0EC795B6C36B3B18D6A5843DC561F1774AD5CDFAE8C2DBD8F3DDE933E5D770E1
BEBFF22AB6CE2144203059627E21B0F28239189DA8B26FFC07FE31692C13FC05
B57C9E5E9D72B3F96CA509B943895D2B72FFCA92FFAC47044753031721E194D7
ECCE6219D592A9FD2EDD43DCF28312F6B331118704D87C72B9CADDCBAA9F9070
4BB514A1A0578A20B17A84DB67F6A702C59073578EE1893DFDA91DFB6D2DC6AF
84BB6861C104C4F40D5FF538EB7FBC3F131F83120F54F689D3D156A28DB0AA74
84C39D3E0EEBF397BE87F1A57D800C238EA3933756C91BC359A34CF6BFF9056A
C9FF531A47738C367C0222F0A3D0B49B3DE7C7E78FBAC64E0D5983925F7F18D1
933E4484B3D716AEB4E769F4A4E602657D4A1B6BC60C5C2E3ACEBAB27C2764E0
EF52A905488AA935C465ADD514AA224B792CF133059BE3B729528917D820D586
1D01A241962597B7D74F0EBA70C949CB8ED0B2C6BA742E77CC8988F55A4CEF50
57C377481371FECD36E167EDD729A2DEBB9998E984A5EC61CAD98477C20E59A1
FA88F8D298DD4F702C3FC07F1C0D51965F725D685CFB4E224A416359B88B89BD
F940CB36E12E452E58B5A8F93E4AAF131CC1326C1A245CA4D5B665CB7C4B0554
0EBF327B22FCACC9E6E71B4FB7ED99099F1BB039010BC7A4491D45E02E11D921
5CB06EFCB61E41FA723C5F912B9D599E3DC828C3C38962E7D5D19406D0BAA5CF
EC5F76B96AF08496E38B4712A0DC120BFB57A1F9E912B9D43E01789B57DE7E05
38D47A48C5898222CFA8F4B06B2692C0DB029C8D729AD01E21AAF1F19C03F5E3
ED2F5EFD304430B6BC5C5AF153354DEE34E34F5D911CEF2B01B6E4672BF685D3
7BCA6B4C8ECDEE299D039F17F00A164E6BAFEB5D7EB3EC0992B4784A29B74962
167AA6446421AF468AFE8548E77425A0C3FC72E1F1DC2FD2223088CB05A699DE
BC2B1CE1363421E95277070A41F516BE38D71D3658C17601F22725BAB82C9720
35BFC0EBB81A1863AC1B154583B819F34E2EF3E0F8AD589585F2E802A99DA04C
54200D409C15B0B03336CED431E1CDFF48FC108DED6FE6DC694D203D77028470
81FD3F5525B7FFC60DCB7E717E30BA3A9D058CA3BCC7B0BE0BF59C4C698F2DB5
8D8721448C06C300FC9CC85A56761A975F3435D311E1E46B177A251115B1C851
4ABE5020FD920E19E2A08A6DD1111CDCC1FE3AA5D0CCF86C66A60B90AADB6F1F
179A165C444DCB126CE6A86CE1D34D753A51FB0C30DE4590F5E16B8D7DC29C91
DC7A283E7A0EE0DD42938380DBF8263E57FA82D60A45A639BEBB068187538D1E
66B385B395E88A079E5F61C99122018DB25A7874B840D6D3956384D06D4FFB5C
1C2D7B725952D40AFF76266EDCEF111881C0463F90882EE325341EABAD361D7E
D4185A3E93111D75FAF721BAB62454802FD7EB970637D0CA042AB305F26A39C3
417FA0CF9930B0E61D35EB5130AA01888A2783F346BDC3749A449D12552CA53D
B9A401605139BCC1C158353B8275434ED4FD84D04B7429A57AC2AFF01956CF2E
EDBA0F92BDA6C365C3565777FE0D169F4AC4AC3DC9B3112B5ED3513E23791542
8431213BBA38ABE6ECB3811DF216B591B1E21827F2428369E0808C3222BADF1B
CCED1AABE78E82986DA1987017932D97852A0F268FE956D2579CF4B2FAAEFCF8
5677C01537788AF65B89CCB238CD6B70F5749E3527CAAED128AB0A8305866FEE
99E323BBD725FED8ED864C1F40AC39CE446F01D72AD720BBEC98255CDC6FAF68
460361DE4F7E327A5A3EE47B83FC40E56DB2F95E91D59FEAA4D9EB213ACBD07D
35798676F945AB3F0AA9732058CBA301130617314EC7FFF691CE46A36D832DB0
57233937EA4EC1D1338DE170C91269789D8C0D49290908A48D656694EE49145A
79C41B4E5045EA242837005441FC0254C5C4878749B666340F6E31FF1CEB18C0
066B0665EAB7325F595E5265135617CD85D4F922C657D462BE23AA0378FB7AF8
43129F650304F961FF6BF42173836FDA0476577F23EE32527F89902879719F5E
18B7134D30231FCED0A6A9BFD8AAD24B855ABF1E9AC388BBE7F9F6AA50300032
04BE0D2508FC6009149226D74B39967714E9D10D2555A7453CFF849096F12199
034A0B033E11FBABD730FDA88C4549803031E874EFCDA5DC00F458DBD8615ED7
B810F67E0C4BEBDE870487AA7019AB190C07BF4E4C19E4CEB77933117F19F71C
DAFC3CEB39AF4E751C686379A470FECE7E3513ED8BE90F148BC66387A6F5E031
9B1433ACE63C94F7F7C51C55613ACCC0F2F87078D679CCB835D05C0FEEF01A8E
A5ED078DF0B0A2BC30C8FCB824F454A509A4F92EBDE7D477A68D0D68C563DF4B
EC90852CCEB3EF049AB7FFC696A25A043E7096C5D89742639C853DD17FC5B219
EE7E6DD84502F05BF9B9C4279FFFD694CFBCFD439DC39D5E099C93D4DA6D0A0E
C8C48DC7FA6B5A8AC904094ADB7CECBE1A81D304EABCCA64B3F7CEC19387955D
0EEE10598E1E5059BC282875D91B9E875B476B68B87A2D50AFA13CA76D1A5BBC
3FAB098E8229DAE7218713335E73F2051CE796BDDF02EECA2BD7CC62E892CFC5
532319AE935E85E744843EB68795DA3360AEB1F7FF749A93E54C3D5C51DC6CDE
DC6188343F83041895B99563E7ADA77DD3A4FFAA58A8759203B585BDE9DF1312
C3798459E60BAF9DD9FE04CBF63DE0B5A6EA5B625CFC6B68A19DD2B75DE3311F
5A1544A87F4E25A0FD243C220D9A1197B21C322F771DA0B6FBF9AA7458B5BD22
40A7FF294C7196D671C92B1C8BF319D9F75DC9C233C3B946EB89D4F9660DD394
96E777190F5E536FFD54A42A7E19294B0F10C305BA04061550283700C1D3A7F0
C4B978DC8B4DC76B86108084785B66DBD2B69BC07ECE177E0F4E6AA6E4F5B2AD
13A2CEB6EFF9637B4B51C8D34DA10E3299E0CBB4C5DB255588988142E8AB5F4B
ED8F16A7A20DA77369AD2FD2855461FB832E3AEDCE5482FEB9AFC489FC5CB830
68A0330DAA8BAD36F8FADA9175D18356D7BEBBE8E018182EBE6BE01066045894
5A8D14FCBB86AB5CE14EF58B1A6B9069827140EF1F653CB3C9945FAEF6857B69
8BEC697DA1F243F867EF15EF072BA9636C59712B0EF73E7BB430F694B9E011D1
6561E00D41656CA823D9C13A920A1D7708BDD691BAFCCF40517E27DE7C10E650
BD179284E4810767E4028E03E3D59CC506BDC6CF3B8B51B006826A074D350DC2
2113C78249D9AB55DC5EFB7D1608CAAFC97368FE3294D3E59A7241700B0305B4
B46AABC229CAF568E12E95E26402535B8FFBA0EC0E91F4A2C7E67F10D0175855
6D0800F6B13589847820CA591B14621F8759BB6DFE1F1145E51E310A23BB0CA4
01B444851E0E0EDEFFF417F3FFAAEE30A791A75B666DA80C6FC6935CDE1DB008
D1A9632A609E4749586ACA57B86FA0A162E88D2F353760A81481BCA6AD3A20F7
62548B1CF98E02FB7A600C0E10D49204B75A9AC3EEE630D850FB721A0808C001
D2B80C0A7EA95C31B330E630C7029395B1F34C2CEE43CF1AFDB0948E0F4FA0E0
8AAE0446C9CB92765E0D7C13F3FE95B28D62E4E18A38565AC7E66E672DD37C23
2506FECCD0147CA62CCEBBDB0136DE7210A9E455B827C07361F0A2B5B8587855
ACCC1566B4A65317DAD5DEA6E4B7735523B723DD8F15B4253797CE8A8F703E34
8D0585DDDC5B645BC94726DB627A6C1B34460290D9E99ECCE170AF1E287AAEF3
3F3288C261EC3322958929EE2155BB218FC936CD419F04A41367D555765955F2
24B9A3F5C843AD711F4D6A6DA9FC3F7B731A5F90ABE4EE80E65F17FDDEA8BDC0
7237C22F84DB9824EC271E1B9676F17DB30076B4356BF847AD58DE58CD0FF438
C4F9E35A67C1CE5D7421F580601305B162C878DFDB02C8FED310F6851E3360CE
B839E3EAC9E17119DF909ECD5A440D7E0593945A4D950DF29B70857EB930AD17
53F2EDB3C26D5D5CADE2F5C3926ACED89BF50AE1ED4DED3E03076719D24B9DD0
2C96FF5C040C0F34EFDFA07AA4F9486CC1C85B81DB362F3046FDC64BB6331C43
89921254657324BADBD1461151A910F090C57F52D95785E5532E253D578D3698
115B3C44B859B5CD48B30CA6D14EBA694DB44300BC72FBBF470E314969C4BF31
476D9E376C874A88929DC8731AA5CE6EF69DF526E207A54441E0018E26AC7A8C
E66FB9E77800EEF12D4C958E0C00ED49F055A7C0382F1E175A7790C924B21FA2
26382BD088B06EFE09963D9A8A77A33759370C54BE6DD23F8CA7626E8B73049A
85529722E550E7B12AE06A859AA2C558E119F9BD5912164473121EBDE1B6F3A8
EFE4D917A2193E969A19C8D7BAC0BDF0E0F60B9FB5C33F483CF5BC87577DC1DF
6C050BE7CD07D7CC541D97F3AF3FFB6D14F248382184B5E3E9EBC3B6BC866E51
1B7CF051FDB06D0979D6A8150B1C8274897A75C2A30917965C6CD8A3674D9AF9
66A3F4F81AEA57F7C78FF01E0A249FE315D5E58E1209F0835942F71DBF53C079
96A78C2B02894373A7C42E068F91995C88630ABD3B9FC59029B394042575203B
061EA5976BA1A4543731F14B869011979E45EEA55CDD3353F38C83E237FB2EE9
193C8CCD7AB8F0EB04CA265768834A5E0A8002C53CC6FFDA39890C840D76F487
FCA033BFF57D9CC78582A466A7341D2EBF816E0FAAA191C7CC297D0E649AB3D9
9DEC4F6133B24D630025CAB4514047E4274A90E6B5FFE7A5B15C556DC7C41F58
B956B00011D0298DF26A6FF56C961FD49F636D8A45BED527C6DD9195B7079CAD
E7660965CCAC9A0B89024D61820967C757F89C8DE6BB83D7717D91F4F2B3FD4F
C2B243297CBF7EF46CFFA8F05397E6B32B7F615BE55F9523D5E7394BE81F4CB0
0AD994E7FC6391E81AE2754D365A176DC0D911345C09A842507F4D54B4BE4958
B1E17F0F92C7AF9B2098B6F1DBF058F0859DF2B2CD81A928E62BE0274FA5B30A
774C3EE2812EBCBD51547EB7C63112E3AAAB9EAB3D6AFBF07A1835DCF33EFA6C
22CEC7C808F8D10912E8CFE0E69EACD7D3411053E1E34258E5FEAF43E90A9FDB
FAA93C0A1295FDC7242CD95BF4165D2D8FB12D1ABB3E78C6BB2D9ED2724F5784
F1ED2AE0387A33F3E356D19737B82D8E5349C60259FCAE59E9ACA6CAC4488A7A
A3D469A92D4E2FDF643D8329B855FB0F0306E5A53FDB8ACCFB55192ECDDE11C4
9570F7E6D4740F768506E50DA7317815814B6609D65D9F7F79A6FC9DD565FF78
CF8E4F3F4004324224C70FDF66C4954A98430DAC5C756642009CC6DFBB8D48B8
2F3AFB1AA20C33F456D27FD3CD8F63AA457C9DCC783FAD49B7A02425A9B862DD
339FE00914919B25391142273FEC294AA4FC037E4B1D5880E45E6FBD6C580CEA
DBD9C5FF9EE12254E8C26541E4C14AE62D9660625F82BE7B9715445C5D831F12
B128E088743CE478BE7BEF49E17BBD3D84DA91EA7C568FBB413EEBDEEE41C02D
A468EBDB05077570682423BAA0E2995997E2D597A94CCC1FF8F2287656CAF1DA
72B54CFC764DD8F00242E123D8F9FD28B41C5AB9FE33E6CDA7A3879B4CAC146E
07066DD1BE31BA82833AE8436FB13CA2BB1344BD154EB0E528926238CDFDBC1F
C99A2B637FE716D9DE191038CFEFDB7ADBC126B68F7E83645BA12FE264FB6FE9
EDD5196D0BE157624104DF738B2C4F62AFD12E1E75CC57D83D59C7886D0E3909
4701B9364DCFB74944160FF8D15661A56088981E718846B74FF9D500F96506D4
DFC388A173FEE3182949D72F97A7FA3028BAFE164A5B02966D557F8CAA3DEC9A
A57375AEC5F9F6B353F3A1AB936E8161B2D5E747D9D7CA9CDF1B6D0A4E2C8731
291C18025034DB66FE3626E02A8B38148242066D5B6C03C00FB52337415893C1
44D898F58877BC318701D728AA45EFE80EFB738A961BDE29422F629F3304749E
61A66572201ED44127819DE9519183463F1A847AFB2A434641A8FEF4E249B514
5BEE1633772ABA6AC73581A94CF58F96703FDEAFB0F91BED0365822F77228098
63D8C3FCC07ADAB3F9DFE455489ED2C4D88D1F407939369D209FA727AA0BAE1B
9605785BF6A558671E6DCF2E0DB874F3FAFDDDC3E369A3D6562A4D1A797E7181
3A3E9DD4334FA96EF4FED1C1BD70446CA4ADE5A53F9B076DDA5441AA1C5CBB92
4369E2195B47F4F73446776917F8C46DD6EFA5612E7757EA16B572BECA8F6559
3EFF5B7657BE7DE87A754CE8D9C8DE6D87D0E7CA205E07A1DDA0E3A985143570
57975350DFF9263A8CBD3A38E29122DBAF7B0C91E2C65695903D77B054841917
015E8BDEDA2E99CD7D1D7726FF98CBCA738FC75B70E30FDB6D8D633E816782B2
428B23740F96935B1619E7A5D92794588064A48CC04B58CA9C65512CF6917A21
41DD4138A3C12013B1F4BA4718AFF6925671410FA8820C64CB6777292176DE06
027B0313569A547ED3418AB7E7492E31728AA46AC5D3B29181A864FDEB7514E7
388408B236F52A7AC2DE50DDB18790A5366B32A41AFE681D0C22D366EB3347A0
D021F9686AC638B36E90F273DAFF8EA535F72E2C0536C76BC45E9224C038E3A4
59070AAFA5C7C796981CC52AB95BD264608B3BB317278A33AB295DF0C4A3EE16
2D224ACBD7BBFEC1B0A934970956E85323045B9F82ADB730068ECAEBD756FE4E
3BA6CAB4834C90CED888F6B6771A47DD2D6296BEB09CE9672220F3B63AB09111
741AAC035AC6357A5FD31894A7BD01F74A6CE0511095A34EBB457D41AD58230D
350395BF148F1800469C2D587DDDCBB6C49E1626C68384D4EE1109B7779B384B
E04E17B9D430F08911876D5922DD4AF615481775F5D8887994D3316DEC26A75D
CE09DFE354D74B47FC23259985CDAC7479E6184CA32624952D45B729F33B173C
3129F89B98B7AD044A5B8C998FFC082561C61913FEFB9B21D943D1D58360BCD5
B55047472E9240614FAD57DFD24A0DC99B65CD00D49F9DD544474730168897BD
2A8991B1AD5D4F7DE7EE39EB42C46BDA6A967DB27748C725E81DA609359874C2
CB5FF2FC8AC48A50C437A8CD6F6BC8C4AA4E811904A2341A76C439FC2B54E337
0EF519626FC19D3F8A64489D14650387116254E14F1EA005D9344D6B3EED8003
9728F010641CBB8B1B4313146C7F1C29F13CEDA0DE3DE1A11ADF77601BD623CF
2414F144FAA4B69B53AEF446D272080EBE0BFA2F35F725FE3E9D6094C52AD08D
B11FB2198606C4C06A75AB7B911A8681284A6E1ACABE430E1A72647D5EBA1C30
0CE18847B5241E410FF769F1E4775F64FEEFFC912D794668B215D3EB1D62A51A
AEEBF86E45B81789D81A7BC94B4A4C83D0AD27F0D90D55B29D37ACC499D72A24
8B1C25B29823F96D9998EEA58939533EBC2C173DA994D039CE577B20E671A0E9
21C24CE26411F590D6D914596C7EC4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT9
%!PS-AdobeFont-1.1: CMTT9 1.0
%%CreationDate: 1991 Aug 20 16:46:24
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 124 /bar put
dup 126 /asciitilde put
readonly def
/FontBBox{-6 -233 542 698}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E
2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279
650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35
F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A
D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E
F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1
4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A
438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD
BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B
A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641
AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74
D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB
CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A
082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980
9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0
4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A
9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F
B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D
42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED
F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328
A2C69F817061D6C60B121EEE844CA5008F23DF0662AF5DF9BF9281CC1AB6372C
0E44B53855A4511BF05DE8621ACC799D69AC60D02CA10931B883EEB3436C8E62
ED691173A67E9F513458F2CEF93A1B24FE299B562B9D965CF8FFC9DD6FEE5BE1
B1D3278FF87A93EF294BE58E73E8F0B4E6238E086521B10BB6376DA259F36CCD
65591074105D3949ECB8DF6E50EAEE79715790CE152E41EFDB930FDF1F85E0F4
125911D9BF228339352E40D03FB754FA378A3CA361BA881950E1E171B6073E80
7F5AEB9052032B2E47E3A55BB628BCD305A9EAC2064E988BA5C3E5FAA914FB33
C20E04E0FDA1AE7F60F6102B0E287DFDF94DAB142F5204BA85A6EB08C60A6578
62E86FF72A9C155430C3A4DE70EFDF83AF526AA899ABF75A1A9303F4A03B9751
147FFD7E593F5050DEAEBFD4D28BB9EFAB5171D69569127E3F480CBD4585F216
B71EEDCC99604486249008B22F0250C0C5B106E80C3BEB26F661B98BE1DAC1E2
0B7EECA9860E49168D0A2764BEAE96D851E49758BA5F8C347E9271B94B65FC19
ECF30E9F86B513AF41B0C6E9C13F31DBA9C7AE9D8F21D0B4D2026CE603FC691A
21C2B64FDAB4A1261BE5854AE033787ABBAE6AF23570731BDB90BB70D33AB88B
591399FB9E35A7F903899C41A7AAD037D4706C022C366DE0D79CAB688E9EF2AE
BFB076D96D059D8EE32927667E965384708DD8C0ED4875DA939176F3ADE54CBD
81A4ECEFC147E3798177142CF1D827836BDC719BC1237FA2B3DA6BADDE5C1BCF
91F8948E88860B963095F5D507F9CA2FE0C8C08D63EB8D0BC5DEDDE28E82077D
C6C00A8653C0574345BF1293CCB73BBA1A8B6EA71DD98FAFE2D624911E54283D
DC233E7D027FEE54D66F834FC23828F991D384A7FDAF2BDDAEDC88C30CB82101
1F267C3610BF642B60DAA151FF97801E34FD5486075B838DB5877694E8D17E08
418ADF18C0782AFD181E60386E55D968F8CEA91B44B3C7093A71304C26223E1B
B3E0C93C65BFCD0CCC1ACED5A1831BA545D8C067A8C8477572082FCEF595DA90
1F776C89A37184FF8695CC7E39AA8D27F342C36EEFBCB368BABF5F4628123B4F
6EAF353ECB9B1E027338C705CAB2ED1DCE2F37D563906ECEFED32622546D09AB
A517F01481D9FF543E4992398069E8724502BA57AB9293ECC772EB9A9FD2FC3D
28994D4BA0F5C83BB9A592779058970B1D4252D9BDB574BCCD5ECAC83CA4B1FE
F69448B517A691AAC7448F770D8E48283AB6B42DA8C1330B58609B8D6490DF6A
7ED54B8CC50A9340E1802C5991559046A8B7246A7569A91998FD00CFA607C4B5
6A4827D9173D4342A50EAF4D741BBCDC7F67885954A739C4686F2A78A1037CF1
36E7D2A6377F2AEBC6E19A0B64667C632A8644D8DDEE05A04EAD722E33AE201A
6CC772E3AA30120455FD295FE03BFF5C998C47C3411813CD01446731E7049F01
3C05E37E8B406B6DCA9DD30F27ACCA2D0F392B24B3AAF0CCE1360F579396678E
E3A61BBBA1B06EF6FA728D3E17B3E2703EC47E37193BF1B4C369F2366E28A844
81F33BF18797C6B66BCEF2A8655DC9BA859BA5B80B2211BA1BC048860D1BBE38
AE17CACB462E648387822BFD995E7D33C5BAC85909C5704488BF1F2888352209
9352606BD3BC6D669FA5308EF36F97B1001A51E30F5C63D6201C487BCB6B8557
5B0C8A39923730FE950FDA66C8BBDA1C184A05BC06D12D0A04E36F01900057BA
934ABB9865328191758C50F8C031D19CB67D1CBC1C879E7ABB7D47BC80056432
15267DB25F3E1F5026BC84F8D49175FECDF6B122C0B47F0775E7F231B7A84B5B
AB9BACAF59CFE227AB7D979FE4DB56EDD857DA5C382CC2002EFF2A8FBD42065C
5AF753EC73C6FE27DCF627B2082D9C75735B8E47B198F7187ABCB08C672247D6
9AC0D83FE6DB1313155073008B45BAE3535FC6304E76BE6F52D444C04CA859AF
5ADCFA68670A8371550FA45E7DC489D5B0DD2E34D28772A6EF91DC083CFC4E0B
7C6FB900DE19C04A7AF905648E932FBA6A4BEE9E10BBF1887E57C4C24F3428A2
EB697235064F6756BAADCC022D7343715A75F9F26C202513E0068F628CB253D1
E76241B4B43BECA2FC67B43170D6F83520D815D3B8E022F7CF2EE65515A2E675
7CA21774490A73DCEEA52EBDC029F037D4DE4F1B4F476B9C37FE2C61277D95DA
A1C09082AF6D3F2423357F9BC155CBE22DD220F8070173D7EB0ACBB7E2C33546
243B22F3238A66CA5A209BD0A0BEE5BDB9405688FDAE711C77950DC40B2FC779
080EEBFB41BF892F5F0A2CE8465309EDE9E7F539F0E1B1D70B89B09F204A0B23
7A2A394B962F1BC5B8C4696D9FE36F97B6F5B0657C32FDBE03ADC2473E55AB20
E17138310473EAC3775738F8A97FBAE26BE964443EAE147868EF258CA04969F8
38CB3C38E2FC17F321B2EA44B1A43A0BA3E5808D87DF9CB0C4B697645B5E0973
EB40FE82B550C53489639BB34BD7648D960F91A7C8A3EC2A90DBFE87B6C796AC
07B7E98FF07E51AD76792D45BCE9763616AA4A802AD1BF0F6D34C0856841F7BF
585244BB18F46A67D393277B9F48F3ED9FF0E086458FE9803C75033C3878AEB1
279A0EC06AC52781408F6E6412BD05FFEB71C43E8F956B41C82F74246C4CB0F6
570FA05C8352E417E5536C5AEB7B0FD7B2B43CFEB7EC2BA2AE217F4961D3F83F
B247E765DE2FF41C7EBE931E8095A32F454AD8007B30610D52175A589BFE421D
C871AE014B7EE698C2F48DA6F0F5BF4E0D6F2CF1A17F1A4187550A7F5D89EF34
EBCA149B9084BFE3050834CBF6D720EC0521174DC466240AD57373A0ADFD845A
4F0602C3276279A82C6CDB5BCBE08604BFDA92FE2A56827A1E2CB08F957BA47F
866C9C7E936624EB1FB594ACEE3B9D8629867C89698AEE6E1580C291F9EBE9C7
FA6B2E725DD0ABBEF7E3E2D965AC44CDABACFF201E103046210B490BC8DF6075
ECDB21F7C7142650CD3642C81E72FDC626417647BBD1B8DE1005FB71AE2E8CD8
4BE1227FAA8E0837668B9F135220BC743846998E2687B10F4F4AE37A63587DEF
6185891A8BE185383CD9FD44B0AF56E05CB5F3989B6DC4E856C051269B8E9141
A1996F036EF6679F539689A4F2D834E4071F1BF876FB8B63C916F7314212C8B3
CF0C8B1C22315D8E12B1E334772B64DA081FB4723544379BA5D92A992A44A901
BD739D0AE92E887668CC91FFC0E1947CEA06AD0EFD9229E6553D2929932C527F
8919A3E87CEBBFE9E26BF5509D7B79B6E8608C81796FE579F47B8125B6BD072F
4AE89A181F121C765A138F2FF4561D27B6D7C90663D2141D558F6A6D9BDB510C
FF28127CA5DEA86FCCD1D1ADB7629D44C8FE46AC2D2127CEE3FDBC37C2EBBB17
87B78E5803F97E7F2B0F35C96981B5AF1E806AF3E4BA0AAAFA2615DA40A77102
B8DA8C798EA7A8F30A4526F4A01720E9A53E4D2A7D254A962800C2828AC885DE
8C9D8B95B9A4E3EA09042A92A9F3FA42D239ADA36CF91257ED4D6C87F985D900
B4DD0AC0810A6E13625629A99BFBEF947E8A1FBB08F5A08755F2FEB90DF472FB
5080DD172D63EB8DAAFEFB0B9EBA436567FADCFE43CCDE1BB1E47F4C28E77903
B8C5C6EA89700E73A869FF8652945F5ABFC18E784D6973A90727BD85361CC848
4765B62E9EFD0EA851AC46BB0F043928742C44DB1E718DB7AA777B3656B370D3
1B1B8E295DF5C15E62330C872B4748CD4732CB5A98513EC6205D919A06386719
9E9F0364B3AA5929606C65CDC3FE08BB7F2F67D51DA3047BF0120078A09F60D4
8F9B6421267BE75647EE5CA42EC28DBC619DAAB7B86318C7036D8B7B2DD06BBD
AB7D785717695BC4604AD9962C93CB731A1645ADBCCB7C126F4F810558B12B55
DEC800E7E9FD1744A4F8834E73C47D42D0A912AFFE3049780480F65B1E287374
B93422FEF4D7BDDB2B81AD3A317C23FE726877138D8228E9C6C9E74F973B287A
E4C41A043D5D92447C1ECB827833970D800085493BB9D8191C3236F29F4E600B
291A2ABB0D98C7C00D4F49943D63D80F8F9BC2B107EE4BBAF3A0B264A3FBFF59
C75E8E8DBE326C334A0F4C6597A1E2B179596E4502C78C537A7F4491D7B7DABA
A4BB8ACE483125751840BCEECC58C5179210DFECE1570398340D6CB55F70D77D
07F6511BB7CA4050B58EC05678EF2C144F80927A403C19E3A050421E882E2044
53C0A160F790363D925549FC377E7552BAA416020C0158DB1C09BF1DF3B51EAF
23BCBF9C7FE8821C7882B760BF2D54DAD06EF24FD129EDB8D46544107E3927A1
A5F3784A8CE6A3586E58DACBD89827861A21682D27009C874C062CBACC0A7829
D84B5A23111EDF441E0F14AAD81F5DE726729CAD20726D6B0D820131511F4DFD
0D4E8D615C8893C82FA54E45A9B242A93D1CDDF02BFE2E2300E2C468610F926C
2154DD4643FFCFA8A61DBB01AE66BA052BF21EB5EE50F71B39487A876606EA23
0B3A10F991DE4E695A8C5BBB860D4C055A5690E1E04B4B7EEB58095F5954014D
251A5C7B9BFFE938F669D38D101AD89571847D810F1360D45C25086A22348462
DE04A14D98F5FC99C054C0D469E8A0FB9D7F7AD66AD3D2D1BB3ADF70830E9E97
33917ACE6AD903522C80D82DAC7668E0F667C02419759CF83AB32EE3B8F861DB
1F4D942EB4B74AE82900C868AFB3E85FA3E615AFF02A972CD31DDFC2F3C745D4
885785BB69B5F543DC9E316F8178D7B727C04CC44EA9CB02A498C226C8B6096B
33ACB5D471C0D4E79024D389082CC03140B7EC035BB555FC582F94A48FC47677
8EC55C554EDD5A7657B193BF575D803648A1852211B1B9CC99C76F508ED22442
CCA02590ABA9622FFE4289834921EF6D6F4FD3EC523314747D833C0AE91BB156
54198272C9FF045900F5D2A16333E5548FFB8DDF042BC8A1936F0DDD5079FED0
E189ECE39DB0C4849CA996DAD465DE760E0A5F1CEC63B31A67308A57F962C6B1
85FBDC5441249A06D21EE6F23443DA3490590A68D98AEE68DA145FEB3DF3003F
55779EFDB1AD88EE374BC1187A408CCF0522AD6953A93368CC48016503085057
CFFA728D62D2305556AE90FEBF3A6DC7FAE1D5C3D466E2107C59B9C64549938E
99AC9F9ED26CD8879EFD2D9AB36988980C4831E454145E73C0016FAF133E5900
D084E5037A6C39B488FAA7B02348CF43DCFD0A494C228E1C66345E95AF6C5148
8571037F0299240593ADCBDFF3A8F42D581EB62C5E82F3C21F080749D735E0BB
9E12B9273099CC36E6C726E8216584CFEDBFC5BFB1083824113B93B75F94EF9D
87F9643052080902C1799D325A1B386F54C563621543FC8BC676C2506BFB4191
EAD54116CE01DDB9420FF0B1BC280C21D36BC47261C331D508AA54326591EB21
B5E186EADF465290B51D56A580BFBEEE4FA54EBCA8FB4AAD5CF7CEDE926742C9
164367D1BB3933C9A0ACD01EE225D579980EFA1C84B477B4DD914C46793B50CE
BDA3D01D623D91CF1115F2241841E5F52E0C3788889AE3996C233E11DCF4110F
E89AB805482F523A8BF054A697E71D532DA7ECA1675ABB17B1A8961DB9330779
B14E943C65AEE799444D963871A415E0F50BD37281C7B5F5F6B2C4A83AA75671
45F76658A6E8C644665F87267F33011DFA7C4CB611C61B26DE82BED4066D32C9
41645ED12EB21DBBB35BF66FFDF873449A3E5B8404EAC00D9111104CBD54DAC0
2279F9B2F8556097815015E8AB1DC7F174AD41395715601F513C36223385EE61
CD64D9F6C4238A023E38D5763BFFE2961113AA01C9C6CF5C3A31D9409D13BEF4
8893A968B70425F0866B9560BC480A49ECF95D333513EE14F96A395A1BDEA4B2
CE1678EB69C37C39C79D38CF7342EE0378FACE3391FBA3F0445898092DACD4CA
C630BD57285A52DBC25CDFF1E6432A1764E5E592BD44D83446BFA1C2A6EC3891
20AB0F261953B68A4DB4E516A95337ED42ED7C31CF8B50C5EDE5068177FC8A88
D81F61555E29C10B1110BDFA2889120DDF2C9D602EADC75D44293C5668323194
30EB77DABD647A2CD54810DDB6D45E9535357A2579A1D416D0443B445E14A1AD
26A67FFBA0763AA6733998F2CFBFD764E054A824E17CFAFFC85B6FBEBF9CBFD8
5E5E7FE16F7123A987448D0065D37C2E66CC732483BBBC8D379DF825F04A5027
E9ACB905F506032C77BF09BEA9B6F51C86EC36706EAB8213E3A02734DFE13417
603232888005F5EBAA64EA2FB290F242367BBA5B7A8C8D54E3CE4F9E57E0034B
8845F8A051941A5AE7D7522F5A7254D6A39D8882174C5A23D8F002D3F8E58F59
3D9250F82D4E02A60EE71FA6BD200A591C115A2261622A6062508B79CEEEB112
F1F6DBEE42B1014E0C49A526DA959A128C73E9EFE822986460B3526AC540CA44
161B2164037EF2D8892848BCF7633758CEFFB97AB695F8EABB7066F868A44077
F05B221E2EA158B89D15AE1A7E5DA310085ECA282C52078110A044590F36DEFD
3FB101F25A0AE00C45ED6A90CE6B99AC8B0F3F6D3A9C7C124795D15F53C03B22
5E056B336B653D09FDA9A2926493830C55473F1549A3A886D7A67B6CAD6CA27F
F9A71C9BF8E211B924E5C1C1D49FE8580A45C145D37109689B90F80A3D4EBC87
D01940B5E98B8B4889F7C8A7C8E7554EA24096B8B98C03FA5016E14D3F39A7C1
982BF3E33B96FB442F4EB6664B1166C600A508E9945FB1C30BC3FA0ABA51CC0A
28B74D516125A84C6D1DF2EA7DDBFEAF093A1C3F07855C9C0FBDA18E6B986959
1CBC6E949A33CFEBD77C488E19FAF0EEF77A646940539FEFA90C5983DA733559
65C8707D1CB73C6A9D2AAB5DBC07EF401694969C3CEA2E5B99A84AE63CE5F2C5
FA6B0AB53121B652AE98A98311D55DF7FA84A14D2573DCEC3265BA9ACEF40547
6FB60072AA08A629BFBAEFC57CB9CD8A6D7C72658A0F3319A00967BA1999007F
ED2649354C0075C17C5B86F0DC21B9B45FAFE2FD19E8A3F160C55F5010B6966F
C01AD16E18AF93304F310AF0815C3F34A743CED15CA393656FD67CED0183063C
89FEE51A5C71B484E568ED34D0AE16BAAEB66F25D57F39731A2851A6E97EF98F
F74BB671CDF5AC1EE7B4405552163A89B929EAAAF26C305BE9A4FBB9329A31F6
A33A2FC7E990ACA3C6DC32C27AF6667444F7B90E4970BAD1E15B6821B75D96F8
FD27339D7308C50EFF81515EB5AFE7EFFE085418F4F926E9797981220D69AC4B
FB0E098F59EC1BFDC51BCC55F95AF09B1C584D0ECB42404E9D3F7FD908762B17
95E4B30942DC8C3288BB6669A4396645E4368AB43DC8552696F8121783D1EAB8
0ECAAC483016F6EEEAA25AD852CBE479C7CD35EB4C6534139A674A459D12738A
92EACCBA18BF00BDF3E9B241A722AC0E374C25C37D2C1EFA10DB82625A1A85A5
8D1B91735A79BD2588C97C8DB7D7F23EC96ECF4FEE9DD4DE7397FCCBF4998684
56B442A65F31874F9ED70551B4C867B3B112543766C30EA2B239492E94B0C220
3B0441F8D9763CF63EB6F92ECEE5BCDF939A12133365FFCC8A791F507BE562D6
F7BAFED897A367BFE69BDC38050EE662D2DD3080D26BE4C5A581B97D2E066152
1876E478DE26B13ECDDA0DB60175C321CF95CB24811AD24C17F8DE361C23A3C3
3C65172B3089646492AF98C872FBD6673FE1FCA0F8F0889D997E56F7D9D4B1D2
F24B0FF818D3B1DA85E2393A1A76A5EF4EAF877E5A3C90BC62BF925C082E38F6
7B010109E48423F6352B055C6E1AD160BC3D7F3C162A1E348FAA54770A34938C
4E9EC50D351A9D2908C1BC94EA49DAE9F229BF1DE838EC0BC42F78004F2716C5
26E4ED5B69CA5C3E44EEF1FECF4182A384E2474BA998ED6D4D1233F43F661E87
CB76E14FC4F9CB7A9435D418FC336D11715610F3BCD51A64D57D4FF0FCEA7426
007DDF4DAE9657318E6F83063F94D74413C950E3BD429861000A80E37F1A9254
6A4C0FBB136FEBB94213AC79E34138F6B0B107FAF3836354AB798B2942EC13DC
A66E1A531A661AF14FF8DB9B15B666004E53BB074E6A10E1284007A7E7472862
7B6854450F3EE367AA56BB9B53A6A65794D0BCF8710FB7B13A083BB0C5318A5F
C773F05E3D0F76336F4EDCEBEAB8511F985EB80EDB16581DE3EFBEB07FDFE104
04B1E92D6B3A6F87162F98DDE96599DA22F3CB8D1B0A7A530B682A57CB3A65C1
CF12DB381F761BAE67A6CF51B409A61404C0AE8DCF77664E4FF95A4CC2260D9B
F8C194BE136FB68BF6944CD0551FE8C5B467420A80CEE77E3CC6FC792BA03052
C527286A33F2C01DFADCF8FB14677C56A493E5F9D3923C196BBF7B3C23317E06
33126F59A7056E6696E565249556CAA41CC9B9B14C47E305162328E53539C500
89D40BE153385BAA2CE543764F84630511E9ECA4CCBD14DDFA3BC2952189C762
7DF8C21BA44E804A3226F8888F5C2EA94D349BFDC556375B2CC04D5AD1A3D0E8
DD7C7125188F946FC8C2D39C8E34D868135ED148340637371B113AC61B74D06C
B25C5D4770A2654F82E050AD7E23E29BE71D1B0E1F783A53EAAA6F6594B49881
8B076B664837F123789A3647F09684E4CC58CE8327848DC95466F2FF75281378
F63DCC5A167C09AEDE864371C0E8B829A807604F8F3B75DDA875E1FB9AA19CEC
B2988DFF4AB1EA42BD7EDE6EA9DA00798E94DEB5B9D15F9F944AA2DB0FECED5C
8F234E059B04D819691226E5CAA7A04129BCA8421CAA3C24BE8DF52D9CC9D181
C325DA1EBA32864D30B5FA91245D74CAC748060F94BD23B1C9953DECF955FC75
AD78194AF065AD16C1F22DB22F16367BEB3571258E1ADB27E14326EA3734DE77
09135DFF480E208E8747665697AA1E24787D81C71AC827640988376DD9130FCE
3E833E5896FD0C8B045C0ADC1301F1360BFD7E3C9239303498EA187EEF65333D
8706C95FF3BB5C392BBC66C36FC5D009E020E960660BFB3F81F84754201C8A84
D4143C0562DC940411F8D759F2B18AF72A48778D8AAE51900329B9E97CD9F72D
D2C3965BEE4223FD81E4448172EFE19ACD5D8AE9106C17F9BABB296D623E8AB0
4AA3D754269C2C273A87B933059258C9406A5E030C2AA4468296C87A0CA668DB
FD3BAF28D6F42D3DD4186F022321655769A03546E27D0B579A2290D7CE47C845
C415A2269297EF9D1DF960CC527E1B9975BA985265A19831CAE3354D95FB20D2
A5345F04EC6958C61690FBFA7C17A4F4D78D96BC61E92A179A1A970F41957ECA
D9F11319D46732BFB9224F464A7E41DF089DF0EFCE291A68D702DE0B01DE0E3D
D413A74BE4243292030ECA3E4F3CDBDE69A3A26B6A4C6515D14805581B4DE373
E0614959474BA1D3F78BB3ADDD88D99A5C9DC2EA5C6B3BC9A0A7E4D97AB91931
2C6362A8D7A007C9506C5522BFA504F4A78191309310C61BCC98F8C33198C560
753AEAEA30B0205130194A2744BEEBC9F17D2C8E366A59E67F75A3070B5C0D81
EB78015CD7652D931B41391F2F55A21C9967E59218BF8B509D12FECC675A41FA
4E9C61DA302F5DB2C16FEC90EB3B775B152442D0959AAF74CF61A8C857D403E2
BD60AB3BAF2452D297D5F161238EAAE9D0B40A027C9DE57FF0AF9DE80F6AA5E6
F7FD6A5696976AF47E09B3B1E5114D25D6B7B84CD8F8A6E5D2BA253FFD480338
7BA62CF3CE77250109605D522580D242F8F451A6311C4B7E7300882F08A91173
BC62956BC950C2AD0873FA711A5E6D401739C46D83CAD5B1700280B76A7AE6C7
37D2F32BC316852575E2D72909280818399EF5191454B6D39F36447E6A749930
CD223EDC6C8A0B8650EBB8BDFD9FA5EB913DF8C0AD9C95420571D6D1EE790BFD
996BEAF0A6B2BA824A591417B69479979C4402CC974776C99F36CFC48BC0C316
AD08EEC3773101336FC710F27FB4AAF8F858EB1D3208DCA07B25D10FC56955C8
085D74444F3687D916C04487786E97F9FD399293CE6A79DBEAB096E0C699DC7E
7DFD6CC2C43736B68E1BBBBDA880B0AA2D511D4F3E093E1B904FB8AACE99510B
C2911E7059E893B0A81D632A1B7376F29DB21E7563F2C4D80467A579A9D60D1C
53E9692F761C7DEA43661EFAC2CB31CA3503B935BD505E6189635DE13293B4C8
BE32F810A49AC86EB5F4A25650A4FE9B0FE503D8516031B11D2B69C2F6B3809A
791920FAB3906EFB01CD4997E369366044179355795610DB87A4B323A0C84033
44471DEF685CF189B6023C8F16D8512BFBB8855DB36D32582AF87C6B9543B100
5EA6D21467204D9A61C0A6FC80BE0CAA91F9B53B618F443E570C8068E941C9AD
113C899518D01230B3ADCDC29E54848909BC136351F96F2181472CDF41996350
67D428A2A7B5B6E66C8F941C033ADFED7B1668DD421ED5672CEA79FBA3D0A8EE
78E9EBF1DE7C45C3FB4DE0E9B006C5757AEFF9EF5874EF11918AAAF6D654363A
47396742CB5ECF0FAF00B802E56638CBA38F09A9B9E9DC979FCD94584AAAAD37
1B9A3337E25CFAE31F503840D4829AE6BEEAE06C6722E168A9C518382F9AC439
DF974C38115021FEBCE6C6C99A36094A436B631EDB8FF7FD17A9271091D6AF17
BC504AA4983FDB47E50CFFD18B073B784019EDEADC6346B2EDBFE4820A13D41F
BA9048CD4BC8637A16BEA98DCD54A68FC0373171A25F86C1DB29E07C40712942
F41295157F804B1C4EEF4EDB58283F0AED24F552B1770C05467DDE0F513F5968
57577A972DEA32D99BA8DCBE62C2BC7173E99A94BCADEFB0DCD29173C5CD933C
492A59CDCD83C569355351F96D91FBD95CF46AF922E0336EB3D423C31DC18541
81C03158CCDE3553091FFFEE9EE15BE871AFB7F94EBFD1047404BBF98945FF03
9DC6ECD6A4C24326FD8FE040625C0BE5474B7D601B24AEA95095EB77BC4F3484
EF8E81C410D8BECE9780FB1BD860520C9EA0CC1923EE9D7C042D2973878D61A7
2BD75525A6A7AB4CDAAC4D1CC96543F032C65B337AAF9C8E89CF09E74CCD8B36
DC247CB76C1485B20D7CC917F7782AD5BDDF114F6D15F04050309A43DB33DF21
610441B49AB9A9C68558527847B49034E74B1729ECF3108102C1FD8334017001
97CFACF62D950ABA513173F088B59B3A44DBBF96DE88DEABF2D51995533F31A5
7D3A1657ECF53BEA96C9E15D03A94D545B4D018CB72AA6EB641F99DEBD117E8E
6186ED48E8F1B918CE678C4B95090D527FD1A05238A8CF1337AAD9061BFF42C5
115B5D3040A3B765A32EE8C0F457A598D7620429C181CF9035139A92D3D5678C
81E758A300EADC2363F2451EEE18949D2D547900E656A3EAAC1D97965AE08AAB
3FD793A32DB2BA62836688C4EB9B281F1AC2DBD93F688F55997C373E68C34137
D2FB534F1FCE7751345525B70D08D1E571616585F16F0CC325065696EF266599
B0752C64AAA5E5969D76D8743259427941406FD5E1F020625298F88BA86C7272
DBCF322FAE77EFFFEA3349CB1C41E4FCD8809B5239F94E3450C35478C6302C7D
5E5EBD4D4D456E8FC03D9596A94955B8537E063847D0239A3CFEAE92EDA073FE
975E5DA7F30790B1956C7244A4321C48DCBD533611CBF30179656DEEEA0D79BF
30937AD12194ACE69A6B8D6084AF8731197E4D50BFC441B5CAFEBD54F1C90B48
0165816E158812CA101CDDBD0544B1BEFF3419B1E68303D78271DD30F4FAAEB6
E3D6244F0E62D8312ED89116C42394EA995FF353CF93829F1A4D77A60DB56B50
5B1E336429E88EB219B7AFCABAA21A52BB601830E803E1CEBDA8E8508A79DC81
449ECCE2779EB1290369754C01059BD2A9F448EBE95A89A349FFB2077334F943
D9E5BC2183BBFD94F02B537F60F87461E4CAD22A66A14724C75655EB6446BEB7
DEE6EF484769C868ECD090B86EB1CAB50E7630AFB27F7266413D7AE58A4CAFE7
1727F27C152E9F904200DDF4EB13B88529ADD150C2CD212D0911B9ED7433150A
7DA53D97F7C136BAAAA34DDED44DCEB6DB2FF58821E1191085B7DE95197B8D76
6E4A4FE3AAA5D56839179E149B9B75814F1853BFA3F09B52DA7518A1A77CB2CF
553510DB3A609091563A8733C389ED85A6B6029779CD13B68181F8786D64E2E1
6EEBBF1618BE87D5B1D1898BD0D984CE157BE4D4E38E805E05A3071B3D610155
0EA63266F394F16D6FADBD03EC08B27056894A92F27FE510AE3FE9FF823DB09D
BE67DFF446AAAEAD865524B41D335B8C31F6A25B075593E7A7FD769769613139
2D28581961A6E30C6EB84A6FD0006A736D7DB4246182C3D1E9CEA7F13F749B86
C6965CC12D74D26BD58490BFC38838C50F3D1E0F88942FCBC3621C8622E3271C
375CE4710A742E670E6184DF7FAA396DC836CA19FBAADB49D782B9E296CC4453
7E79D18962E863748D754345AF0881AD6001E4604D07D80498656D72FB0AC727
F2F99C31AE5D737E33F429743012E7BCC18E9ED1D9675AC06D439E8A7E4002C1
F28CAE83D6AC2593A09425FAD08DB961524E2C3177BFDF34341A50F03F253B9D
730993BA85ACA4F22358A4400DF46375E78C15824A1415364C41085826C269A2
97C3178FC8E16BFF0375972E02BCD939BD9DCB3652BA45249DE4738BDAAA6025
D2C82779A5DEBC78A1EF8672BBCDE8827839B016E7253103042540343B82DECB
0FEACFC7612DA07A5D41602A36C4CFEC6ED9D3A6B60E05DC4B525E1F87A27778
FF3EB2E5104A87AB4CE7937A6B4A5383733A84C338D63E5BA1C7484A48883261
8CC923520B5D21DCB553C2FDDB3C5E46561ECE103FB420B1712E9E4BD15A0742
A9A301F334F8C1178D8C0038C6BD29AD142A1AA934048214E369AEDE8BDB0070
C540B4CEC7D792520DB3252103757B7AD98AA0F9E2B2822E3F752E568EDBAA86
AA30EB943066BE25468BDF2A0B9783CA882E9BFD1E206A6AE8C3BB219A2C946B
23717130CDFBB46D4EE77DD82CC5B0F79249B05D3F322B5A5159DC53C177BE3D
0B08AB5376F887A51CA71ED63AD7B2F40E2B3EFA252F9E3B37E78C9F0F9155F2
0D5ADCF1BA9506277AE5D08A1394118CC10CB480277838F5A4307A6DCF5B9AC1
4197CBFB4CE930441C84FEDD6FF65189BDB2DE53827BEEDD24989667D2DDE5E1
298ABF041320C8B0849963614AF9B2933386523F3E3F491AAF084F894C93EB09
61E6D42B9B7F890193AB49D0C59F65A7AEE1CE587FF8363FFF267B1600693DA3
F1705BC84F386E0F2B6C458563A671DF749A3D0CCE8C68058C90DF0C809D08C5
C4352316B5E1AD2F8A218DE4E1B2E06EB088198E53BDDF5E761EE6CECC341182
744628FD1A93E7C6E5A91B0906C1B10D423EC7DAC421D4B71DBA1BC278F4B82E
73185006D9E41395EA899C18C6AFBEDCF8299E3C0E07BD90AAD919431B1FD794
EF302F60C84E3E3438EE1F5D6D501B8D75B452F03F68444F8FCD7420C02DACB6
8BF7F2590213805BE388DDD02234EB7269CFA22871C6840023F848941C9C2294
15F635925D0BC3ADDAB56CC20053F3A7CDE4AF474E532457DE21295346F35D25
82AC917BB998321E858445A4F591D1AEADB1B6EF30DF8AE84818DE8A820151C8
E2BFDACD46EEDF760C39E6835700FF15988B7A09EE07717A52930F2848595C29
1EF356CD748756258EEFECF4DD430BABC60F527C960EDAE9933A735C632C08FD
BD2EB2D42BF7FAB54D0B4609C91F7332F6C184A99027BC309B53F279DB28EE46
5D1BAA09981939CAA83F259514FF3A43B9CAE43613C96A93413D09EDA0473CC1
706D6DE2C99F5A4EFEC9DFE85D54AA8375D4EF84A86B8DC86E1DB0F09E7641F6
18A78F2FC90C1360B6F944CC07D6502EA6A9ADCF823FE4CCA338A16DE878CF29
D26FB1257D9FFA5BED896BBA5F11BE7BBE03B5864A7E5188B334B66D37210049
D1480EF4CFB1A65EE09F4C94BB30DF9D978256FA4A7905433AE2A4267DEAA0E6
EC8405BE1E249AF7FF14034D2CA72BCD82ECF64D6C009DEC38E422A05D6AE42D
6E645293D6362B564013B2DF391A34CCCC6AA7EE07904DC961776359C15CD629
5F92BC9706D93041BFCFA90744BCC8203DE11ADCF812E081D98DC16366A2D0DF
54C3E99BC68F40BD2F7D66461A5614C5FD727658CCF83E0CCCA98C79CEDDF1F1
ACD968B9EB95ADC9E6751A75049C374BFE3BD1050D6683DE8EBBE870EF576C4B
598BDB46A9B09BE6BC24C6926FE852BFFA11A7633C7B02FC9F8811B13CD06F4D
A40384CF6A99DA9BB533CC6AAF3B4C22FA8795CF2629502DDC76E17F3C0A380A
FABF8BE9192D9E0C491F3B6A2C34776700CBB5EA724E434EACA8DF524B92331D
62AE24C3D75F5E2076D90BA765A5FADC46AB3E8538F5DB4565B4DDFA3BC29502
8975E9779E5A5B583B006DBC944EC5F63692E7D24490C5E9B7CC01BAF073351D
A0D8C4C13AAA7D1C8CCE20CA2937894A2AB90493A69991CE58DF2E1AAB81604E
8B16ABAF23F33A5055A1B15680793C8057B4D292F1BE6E79853EA8E857D74C54
C4D18B44C329485DD8080753E66C1E274A3ECEFB1BC8768173C0D73228BA27FA
0148BBA29658E89E95E0560DE612B85F370B0CFC014E9835AD06D3210A2ECE25
814E5F2C5AE4B0738714242ACF0569CA70DD96E62F593A3DF1668453D1D0482F
E753296CA052DF65765B3EDB1851937D743EB25B562F96F7AE06E794197B368C
B5EB89A00875985D419EA15C93ACA39375591ECE708D75B746BBFCC0E972AF1F
3E98B6B4F4CFE2A4B9EC9D44396E7A021AF4A4AEE392A3A9F7B5326418798A22
358DAAD51DABC2404AA0162964A113E6078D25FFBAD476832335925C62607E7A
B14DA02A7D8A0F97A86D6DF936F8F2D2A039D01F242211B19BE9568458213020
189A2C90BD7AF2447BE7A411A0EF98FC17D1670B6382EECA15BE00A2E160D8B9
8CB6614B386D513BA1F4F98DFE5B2703692F17611DC2321F4DFED4E3E05D6069
743A7C7069EF38C5F060C050969A4A0C28E35ABAAF463D9FC2642B07D268A5FD
BADC373E5CF2E3263C8D2093118F5635BE59DA8D93BA60989CAB765FC4597D73
86BCED40511B912C3BA9879F247713CAD9F762464D2B8E0D5A870E9ACFEEFD46
F0A407806229647FF25C72DB734BA40F7FE8C3E6AB131216FCE9DAF3F48FA2FF
0E91E9454863737EC3B03E6F7778ED558D5F47B4D3BD01576BF33DCD89073FDA
77C77198CD4E87FC1EC0917556599150C30FF41E0F6E4E147B429BBE3BAC7CFA
899ACFC16A2C5F8C567E5406272466D5583CD2B36547A633164B2B7B39E9704E
C56501B995142A5F35276370D7780F0A50B027299B88B1F1B20CC29E5FEF5892
117762392BE97A4F51C2D63CB3D882888A071B06BF098EC34AF252322CBFE133
5011DAD57FE5420596DE4CA4D560FFC4F11AF8F3F74CE71EEFAF780255A98012
3AC441A33E5F19B4C36D9810CCF086AC23A938A8BC5EEDEEF09EE9F81488648C
BFFD70A5B721A51D27104E3384479B5ABD8E88052E2EFC2729D1F59AA99693E6
59A2491E6FC2A6387EB694E8791A6C87D7F816AA7194CFD4A9951201B6058ACE
753D8193F56CCDB77057F78BEA042EFDC28A87B8A9CCA39FDC91D5F31171F3DC
D669CEF7C5860AEDCE66E49014979C39B05BE6831D519A04EC35E9E62B50AEBE
C8459CA3362C78361EDAD94107AE0DE5109CE92527E492155892B9A72D634C68
146D08FF5161BF70327846741CDEBF3E2B892C6D659E5B3D779061344C8EE4D2
5AB692EBAB4A83A4DC72C1311E50C7C4A8A7DA6AE242A0E72208D3D39F4BCBB3
30DB398EA582FC2FAB328412650D1FF35E802D39127BE80E83B46CDEC1ED46D4
41FE41A4E226B8B95CE95E784B1CC74ACCCABB0130A214D299CBF6C68ACEDE8B
8AC99945509EDDFCA12856427FC484EFB5B51EDD7270BD5A67C440BAD4DE1E53
C0B2369419EEB2C84BC49CCA010D8F531E69963D27F8ED39611E1C0DB1372B55
002A0A87B66497589A4E20E0015233A8209DF09B131FB520693EC48DE889E744
5E50D9D9566B32051228A2E99B712DB6E546549C7EC340B6E546CE9F48DA7767
9B6D8421C73505D1A1D0FCBB4A2B0E3A082FFEA75098ECB1258476234C812F8A
71CCDEF884DA9091444BB7AAC5376ACE28A46D0282F0D52157FBCC984631C30A
924B61B5E6D0F85AAF5D0D65FC8725EAF5B3F6BD82EC040C544589E52AF23E45
219414F312067591E5A9B3241F9597D7792812B3087B9FBEB5A693AE47282F5C
2131656E78578C7CACEA5D7115E87928F530D84393CD56A4E77B6A796844C83B
1A6C03E4F207D2B2287201CFC18442D63EBA9CE9C0796A3D387DE568AEB4582D
A2870312A9C50152BF1F065D079CB44B10FF1ABCE4DBDAC9BA260F793BBD122E
0A0F6ECBE2712659FE9ADEBCA570536879BBA88D782B4867C29D847AE56A56A6
7D98D24027451350E1AFC81C03545E54424724A5324E36803BADF140AD39917A
33893FEDFB6BE469B4993523DAB1919D0FFFEFD23B3A1DC9289F8D98298A75DD
F0F65E2E0B1D179734A11CEADD71BC63A737D320A35E8DFE7490686E0F4E0EEC
9E50C397BD13D742DEAF9220E019EB156E72C61D8A53CEDE97EB351BD704AA68
0135DBC6EFA46E68B52CDEA132E8FF9B813F8EB0005A0C3C763CE445C3641E93
43A3AEEF6A3A522AB7D20340D1DF6E706798D4F885969034010FB36795B5D458
F77EB4A793965D2FBEA9A5072CD9898B8513DC402BBCAEBA06CF4F36BC7D9B07
758F6134230992421E7C18BB365ECD87964B8E8BF87C8DFAA5D6FDF62CC1A4E7
3DDA6207512186446A0782D60CED72FA1B25B6EA75F1B0052F849F392DDBA1E2
0666C7E346D4153B1ED028EFF6661879266CC40EDEDFB696C7FB68BE52148A84
53161D29B7C4F9FA92C7F9A1ABEB755548E89FE6EFABE81659A4F7E57F55942F
AC79D58EAF450B51CF41386F395889F49B3161AC23C581248C061363B3D10128
B928343F21A681CAB2FF28ECA7FA132C060685DD0E254FE88BBB0C2BDEE41869
6B55C3B3E3500D6E20232C568EEAC09FBEA710755244D96BC9906FEEFF547879
920842D4E54C3D52A12800B707147E53CD4B8C14D21FB3D695B8448271774022
41668CB98475B0124C3D2DF54988F475FC5719EF9E3F5CCFA4B681588F23C081
64EB98023D57D42F5B84491DB60BB65B73987A8310C26C236F955A60C4013813
DC17FB65DE3869299EBB526F271C86A5A000E3E20EF7E37C89BA7CE99C3F2BD1
1C6A688E0CBF633E6F1731F08A769509BD3767438B8349D1E9DCC6694D269CD5
A831D3B77DD3DF55BEBE03DB5B0CFB0B7CC575B642CBD1E7AAE9E65B3CC43A91
9F136179962311FD3CA24E431387FC0A52A1AA018EA05204A408CCF7086C1EE8
6C9F8067706E332D19F8E3D9BDAD079B83F632F46446E0C38917286192DA3523
9364692849217BE8AB3A2309A1D338D53F33A7FA1BBE844DD452B1B4F1C5F730
3B0078D4D28DDF4A971CC66DDB633A2DE145DD146FFE53F174918CBB2A2AFE65
C3D66869D8FC40B9F3893E4214E35310E720DE1DEC243D7ED98BF121D62E4CAA
52417566CC32C06311A8C97A32AF964E960D2C7F31850829E03FE45637BE55B3
56D4451788CF37E49D804B559E5C9C7409DA5234DFC3F6AA6A877698BA4AA17F
AC25F312C26DA2D096347B573F3D94F83A1B583BA8B0EA834D0CFEF6FB43FE10
AC81B2E6B81DD6DC1F29FE973DD363F9D18B22BB792E46BD0B48FC1A01F02F6C
899C2B504996864331B6AA4E87EFCE8526EF28D73237A2D664A5C3D1C143AABF
BF1DCB176BCF39D2A56EC57BA9BAE398FB0E8220FEC59BA34379094400759FC7
1A44F0DF87DBC19A3AF976FCC3C0A88CC897B1FCB7AB78F53AE82333016D090E
88755B5170F8851544B6042DE8F73FD03AF24E464FA85510E96CD4EEFECF902E
325D37AF61B620D4997F685FD082BB240FCF340372BEA358181AE79846D9CD23
DD0F547F84C236B2493F35781096890E19E173F16378B8C2C5ADB062B5053E36
B94C6DA171CBE3676A5245F55B75DDAC9DC452C23569DF73B3E5A9AF9AB74C61
7CC8D4F184EA390A2354D0C9A29484D11EB9398E4AD869F83B962F58F8AF111B
EA8D4495D758656F2842A0C0D5201E25FA29D8EB4BD99119D8520CAA347CD61C
586014C345194F8FF5B55DA2CD0429BBFEBE236733209DD1385133740E0442EC
83B41C5DE85566C55C76577A13F4951E299E4D283259E585B96FD54194CD1A0A
59BF9E748B9FB3CD2FA5CAD247F9D0196BB56836CC7554660A89CA31E33C9F8D
4B667B554DFB994B169F6124BA2C62579BED637A167D8604BCE68400C61FAC12
6E4B59BE0172F70E1DEC52916D61B526EEBE769E8F64F3E943A7EDE3CF47CBD3
553ED744DA42B187679B2D365847D52990F1AD035F342460D9D50685B1C3A07D
4415C9BCAA2C73A387FC81927A1C0F75A1C723F9265DA7A6B5422EBC295466C7
DF0567C9971CC1CD8D148B664ED1E694C6EF5A1C568A6F5DDB8823F5AC26D3F7
89DC6CD3181850A8B49F969869513760604F86A32AA7698D915B23E5503BAC47
749BB50AFF34698C83C74A6E698DAA3E31B556F997CB261CBDBDA84C2F061FF6
0DEC76AE3E18801FC3B8FEDC4BFAAE21FBA6A26923C40975CA387E6C632F3CC6
5652AFFFC2D2CF14FF9E7EA8CB8D5C2ABE4D13711BC9C680AF5AE09B8930E82E
E0C7FDC4C7AB75A87096FEF6DE5D39DA4E5BC523C353CEFC091EF93B1FEB4653
9F76F088253AAB37FEFD64A9BA4EF1B192E62737D9C497
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT8
%!PS-AdobeFont-1.1: CMTT8 1.0
%%CreationDate: 1991 Aug 20 16:46:05
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 46 /period put
dup 47 /slash put
dup 58 /colon put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 110 /n put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 119 /w put
dup 126 /asciitilde put
readonly def
/FontBBox{-5 -232 545 699}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0187316F83DDE3E2D27FCDF6C5CE4F95B6EE
3317BD91B7921F3039DD35FEA387D5CFB6C6E9DC84C178F3432994FC7FAC6E5A
ED41A1E2EBA350178FBFEB45944511731BA827167DDAC238FC69A5486B995477
C469E2E27493B0B711DF8E267D3D5613B450011921685147114106C9472580BD
F531022F6DF5432B2A4EBC51A8032C7F9689B6FA942D849B29709631613DA68D
4DF7B6F059A19304F40A3C3580CE3B51D79D42984194D4F178801720892FB6E7
61FF43C63F9256B5E9F4227B1378222BAAD4D52C77462DF01892220E11129C16
6C9E45BB9F01ED7C1AD5D8B4D72BE0E12969AFEA90FEF170603CDB91CB243173
B19A56084D10293B80A35275F41BF78A054DDC98F4A1FFF592463D944960FB31
6BE5F03960F9B1F213CBCC7FD448657FE388F10104D42B0715FC9571CC60CF23
C72560CBB8835A0CA208FE06676B3B48B093CB7FB2C0C53AF17EC5B372A9771B
BFD52FFB7062B4FE0106A01A2A1A1DD4EF5C8C7623EC9324A2CB3B402FCC1FCE
52BFC8662F8A39D5F1B41C97E7CE34E16AC28A1E94007AEA7D4C519399F1B7A9
48FA7DDB671067244F09C29F95DD60668223F45BBDA8B1C452E930A9F3F341C5
351D59EA87462FFB30277D3B24E2104D4AAB873BB2B16DA5B23BEE25BE2C8128
C4CF2F4F438A4E520CD932BAC455BF8775C27AEA6C73EED3EB2F8DB5E356AE27
41B35C8AEFE73C4CD6A591AAE4F45762EBD6D3636C03F08C552BBFD0A13D11D5
491F8369B4BAB8ED9D6F1DE7DB7AFD383986C4338D3AA71C9AF2B8A0955CFD86
0345F16D9798B25156DDF826A7CB6A0CC4CB43078BEBD3E499DA95562A08EED9
7CA27B7A0CE3FA7EBDAA87A6025CC59D75BDC21BC01B3AD77BAB1E6A742B2A26
E8850D477F21D7FB94D067F11BE97FACE6ABA41749F44F1A227D25B220C600C8
62415799F23488EBF79CA0F0A3E407017419A9CAE657C35C2B6BAFC669E5CCB2
BFA48BBABEC64F28DC1EB7A9DE66340A36F9A8E011C2943746724D57C9D7E8B7
8C1FBEC1C1CD5400B2F105136E7CFAA1540718CF1027CD2ABADBA05C5FC8147B
43489D101625B0885A43CD7AAC165E195F0A2111B9E260961D9A0F7F5EA29CAD
A6394B6FA642C1F00D1CFA9E78FE4A85DE61D3842E6F58C492A8A5DC015BDA3B
95F7E294319A3AE55126A2990B390E721C1C23ABC4FC384CC3CBC0DC7C3AD13F
B6D675A6E6FE2D1FC52962A6DF4CAC916333FBB1B1B14C13837E5EF8D23B1396
7E4FD471276F7ABCD615D84F899DD0252A032512DC66AD9FF2966C377B432EC4
F732962B6858C17C037D64849CFF1324B93AD2D9EDC757A969DD7538F46FD67B
E739BC792DA0531362E7B9ABC6CF18E9B4181799987AA017D22B5BFF63EC51D3
D2D82AC44DC35A8BA366683B437127AB52A595A21F155D707B213DDD748708D8
0B4ED85AD5B657D997D60000115E5BBD9A433C1EB1B484F9F1741D4BC930248D
0BAF779F18953F07733950A84395E894B44BCB242DD55FBB1D12464FD20DAFB3
139F8EAF4F051451B5860498C4E1163E7D4AE6978A99D86901891E69B9F6CB11
033C0507EA92B0063BF1B054763FD1CFCDA118D735811FEFF3315189B38C2C6C
216CF770996FB5F29A5E93F1942DAD18A6F06AB06E8BF447D57FA63700015303
FED73549E491FA77D541D0FD446473EE7077AF1A6627B2AA23047840B1D7A97A
B3663265C0BE4980AEF1DBB5AD098473876E2ECE437ED170479565D6B319F069
CA256FA641652022BFD94BCBD0161AF1A726F20B097D2477F5ECCEB76B53E6C9
C3355176CA1DC24F931D324C1193F800E3C875C0A1FE73AD491FBC42B69F7F97
13D50FA0CCB1B5A20FF161D26A38CC9BC6BD4684A14E006F8F90536295AE78AA
BA7B60F9C5B4F86D5F3D5D415B5E013BE1FD4524A82AD5B38DF890451DB0D158
61B2D9164C7AF5E9B996F60383BF53C6EB03BA8C654C3DB5EDF7DCBDD29AE424
75C0551D037D4277C83B7FEA95342078865786E5DABAFE230A2FEAE673E34AED
F9B4A6EE02AA1F430957059F2A40FCF4E3A6D657E414B3A28D9704C3753C3401
86F72ED52BFC189ADB6F10A2F54FDC478EC0097D1672B33E14578A69DE1FC6D9
D93AB66DDB6CB55D83ABAB1C0AC1654ABD6F7C219A9C83B15F3F2DA8DD51BBA2
6468EC69E28E1DDE4331303957242C312C9FD6C14153D619DE1ABC97CBDAC652
E768BF6AA262ECB88DDE1A53353DBFE3993CDC51A49079650A0B24AE3E088F84
AA23785E9D76FF12DEC8A78DFA39067FCE3793A67BBD24AB6ABD5CAE72E02EE6
185B8BE0FFD65CF8A502C1D9299BA47DA09067B1D424D5D1969549FF5657C6A2
5704042095862DA60999F5C193460D8B010876BE16F5A2E5DCE7AF009747E9E6
30E4C02C93261978E5EFC98C4E57DC63CECA275C77FDB20093B6FB72BE8791DA
15FF3CD38511CAABF4EA7BCBBEF4E5BEFBB1C24A0856A5254709FF1D1D394540
8C42300DE0D5B4953D5CBF5E54ABE107DFD9DFEDB51E77CBE1F1B1E728B5219D
314C3A4005EBBAEE961F1653B9916DE40EB33BD1916AA160E71B867E540D21CB
711B859F13E1BD98383A7B2F6855AD008FFBE378E81C199D336E11868D374D0F
1E63053F56834E7FEA685F2CDFB9084C628A4245B161B3B796EBEA43255B4988
0E853B4DFD53E4D3EC8C3EB7D88BB403819568BEDE8554B6C19576B12E7D4796
03A15DF7E19936B7AA2385ECE13DD013F90EA211C364033A0ECD5271E8F732F5
7F9BC22709E830679B3ADFB4CC0E21B8C815E5CCB75BA0827310801BFF2941C6
C9652E18FD0CE8BAF0848718C794B0B7577DC13E11E8F4E9FE7C2E949205BD91
E55FD214A3148BEF7E0CE503CA868D39FB8FE260AF7C85F48A58A93741221F43
D31C0D3F177D9A09954B741128FFE2A531FE6CE78716FA8ED6E924949B5D7FDC
F7E03A28DF392E40D2C7AE57709897970E8494DB65D953274AA529B3B7DDE964
20C2E67AF7DD2AB2672945436649B401B0D545B9AF5EBE9BDD3A97F24E64455B
446BA60465C6A32609CD9308ECAF614BE239BC749F99496826E0E927E6DAC7B6
71F72D8B217814F274F03DC205DFE30D72D9E2DDDFED6AD9FE143A00B12E47E4
4055FE050149151B9626A763C9069EAF8E81A3E95B8897FDEDE0BFE0127A85E7
B30D84E05DA012FD498B4998BC851E2865064FF02649C72DF5AC3EA842C6B10C
52342BFAD7149318534C09D3DC6183A9817E89E25DCFCD9E67F1894AE8B568C6
D3A6D6C3A5E876CC41852035792F020F1BA200F621EE985C07830192FFFC0E32
CF0472173408326B73079AFF02D39A660F76A0ECA57D8B2610670E43C2D2D6FC
28A05366B08D9106AADE3A6BDFC49950339473028C15F0726F5CB63256CE7292
6DA931F15C5E0167D304946D85605538D6B1E266D045AE979311747C372F08AC
5B44EF89997DE6D22C072C7AED9A3067671145AC6E7601CE88902C04B897FD75
885333F40F60119645ABAB6799D3EAEB995BDD8E25A56A383680826990CCB4A4
6BD22BE7F1766F67F947B536A17B32A14019D1B42F7680D81AD865E7B285BE30
1DC74667184017A61CE210443AB79D49C87B442C10F934F3C64FBFA8CF845130
6F62937E9CDC60027BBA3134086FE548B0878A1F9676C6C2E6F670314DEA3555
D3A092D7E365340FF5B058E7C952E484FF3C34B33FAE1F9CF34BA03A5666C102
F535466E1598FA665D24D111DB88A67CA42A72BDC73A9FFCC5131146FB8D1287
55F513E3BF69A42FBB33D0658E3D3DE78ECD0B2593FCAE7D0BC83D12CF5EB0A3
C89F68DB8442CDE58FCBCA8DB8AD5E55ADDCB0D503742B6AAF84AC6AF8D198D0
E5C53C1689C4F1A4DC44063FE5116808AF849F24A531AEBDE0A410ED21D6D850
006055ED98FBB9C3ADC48F5CFBCB57FC2AE188417C2ED72683B679AAC6C17292
6C42496EC40DC975816B2ACA58A47A69255D9041CE23CBB76F777E8E03558340
65B778D75627D93B4A284E130BE31A65D8F00D1028D6724B4BE55F20F0E8E64A
4EA4505EF7130C13683ABA7AB7A49C822B18130B396167A25D347984F99E4418
D1A01B05DCC51793EA4D6B684E7D824E55B52E261EEB54CBE6B2A9FE75C8836B
FFBE569070B9266AAF65A117F30A0B2FED49D7A2F0541661A15ECA4ED007368F
124835C2AC75CCC215DB2EEA67408A07BCC1C3B6EAECF721D06FE8FDB876FEDC
845B1EB0E4F8D1956B32B97FE3BD261F38708534FC09ADA970EA360F75A86C2E
681467250AAF4FE5178651EEBC7DA314F36228DA95A677BAD5FFAA379B29C4E2
B5481382AC62A6D0474D6A5665A503C31B65E1170B509D7BB776B5634A459481
388878A708C1A28E5DA1DDC7FDF681EC8509A8367CA87420015E3B5373A4DB75
D8801A9F69E8209BE939535B4D8D10A5C00A5DF7E5285585953970F5F66E5F8A
74CBD5161FEEFF7E4382A892D8DBB6C8B016F1F5568F71274701E461FDDAE6FD
AA251A7E005C33F5DD43D6799563
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR8
%!PS-AdobeFont-1.1: CMR8 1.0
%%CreationDate: 1991 Aug 20 16:39:40
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 45 /hyphen put
dup 46 /period put
dup 52 /four put
dup 70 /F put
dup 71 /G put
dup 73 /I put
dup 76 /L put
dup 78 /N put
dup 80 /P put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-36 -250 1070 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762B8760D7FD905
4773E52034DC23F93BAEF6FDFC93ECC67651BA9E4F78800E63734418A4A863BC
F82DFB1D3D0C19E761B64A764B3D822776A8E4455A2EC58CE78F9DCACDE76D08
7D9CD9C891A858AD03F37FAD37667D46CF88D4161FD16AA7BDE58A509CFB9074
D931A00620E3AC411E4FD9B721D649A2129D95C2E8DDC9119CE666E40EA3B442
7750EF4EB59EF105C8EB145A895113EDB2CF06D7E7F0F7D0E351DCAA101D8AE9
3F379522854219776FE02D2878D579EC5B066BEF46FFB0AC76B75FD620BD11D3
4A70D6BD86D3A0798A51DD7F55810D0292A52D93538F1850AA76B8606D3C1BEA
303E6D179B822F4771DD612B850974AC7B0C3FAAA37DA611EBFB2EB8152F9D17
760B67D96A5A1656EA5E6A44940E00DC1DBCA0922E7B2AC913156606651F47D1
66609063CFDA87C8AA2C856E786EA45168FC554C90527E4474DE351086CD2DD7
F606FE4B2415C0B96F58A4C17B2E6235DF9AF80A68AA411ECDCAB7DF83D0C76B
A3D2D95C1DD4492D5F0159C9DC38FE72008B836B8403D001853A932FB4E5F6A7
6C1AF23D7C2EC91A0B12BF3893203E2A6403E36BC4178F918F35446658848FF1
233E24D30D704AF3228053FB181480B4BB9C58FD3C6A7772BFD55AF2E0CA5B27
846B5733CF42C7906EFF91F4B285EC8AF6F7117E7D618277D382F70C9CC75320
E2699C1A8CAFA47D5348C16595B145D48777D72FDE7E1BCE6ED770BDDDF095D9
FD2447C86DAE1BC48197A38A3385285DAF18781784D144FDACE8E4DF666708F2
DBAF844129CF1C7ACA89A18A267779AD2417DACBB01E8381C59D8D7FB619E1CE
6D10855E88E41F41AC437699279F8BA23AE6209E7C94710269718825ED6372C4
7A2CA428502D6571C883B6C775EFFF6CF3208DDF9C33A5D62BBD70A58F6E9AF4
17C28C642E8D1BE749B3F94878A141878F506A1D427D59C62BA197F9A0EEAAE2
AD50ABBD04B2FE39925F2CC2CEAD7FFAB24B7C153A10ED1F90BFEB72FF86DB46
EC72C517F876B25B81DC2BFA887F4F2148BF82D7A1F42A3F6D51F69B9CC382DA
34A26A9BA0D68B2670349B51B07BE265AD07DA6A1D9D8DA8FA5D73903119E1B5
55BD69C4812C74ED90EE93A06261CAFC9020BE625E53AE44189077E73D049127
1A0C8E97FA4ECDAB9A445CB412BB1C6A09464FF8DC6981920DDA8C89625B0BE2
AF589EE52A6FCD12F42A3885209A5741F60CBD985BB3A08E80EA81AD79FC8BFF
46F7796E048207648A036EE892347BD83079BACBD55E2BF127288454F4A15829
43369840498A114F0C6BD0A0447D06573516629F2CECA6D2A41C82F30FD66AFF
632D0A56D988CD01C9C1CB5562A6F7A7DB9E5658A6C2B52418CA1995346C882E
A2044181CFE1D5FA7D5E5073A1EBAF833F28E596731F25A14591F69FDD245B63
39FF9C00AA29FF0B219F9F0F3ABBBD8C97911836498B47AC17FF630919C6B7B1
1EED869A30D008389ECE9AC5D0930A54FFD6F040EEF0E01C054AB6A764692C07
76AD5F18AE7A83D4A3AEC76BDF6F25483C1D77C70E17B8B007F7A6E33ACB3ACC
23BC31D56EFCC294C0EBD09F8B2640862A9E637D9CCF3748F52E0BAF2950CEF1
F3AA13387291522F42D395FFB8E005895CE712C7F61444264E8B90AFE2E428E7
D99983D0B3A56D0048B83E3325755E1E5F117E2116F980E80B621A7694E1FC3C
3E64D68580ED46E62356FCE87431731307F9D73B70DB6E578DD32154A9D05C41
C4F996F7C0B5AD6B69436D4ECC6CE431CCB3FCFC08801DFBBE9480AC07080CC5
3DFC2494C5AFCD1C88914F8A8A4B16F25145310CA79C61080AFDBB0A42DC0E8C
1450CD461972DAB2BB6BA180F1E20650FF85298024DB04B7E85216D8C971FD60
61217B81F6947B9329FA791F3604B9A61E3188F690D742F5D888D607F8820893
92A23890BBFAB35CD901BDBACA11B2C87C71D551857AFA200E3D07993BA89459
5B816985BE48C9BDBFB112A17F834B4B5B6E58704F7B0916E6F8EAB0DA213DF2
694326CB63A0D776905C6807B4472CE3544F966E782EBF864E993F895DE0B51C
CC8E457679045013D705D9CD23B54AAA97520EB01309BDE9729291F60BE53171
08CA240D4B728B41AEB0F0AEA894699B5C95FB2973EA657B099F3F1027A293E2
EC548C712C56A698B7466FA4036C2D2E555D40078DBF2B4124B9418594523671
4298074B4C792DFCB127F7B14805F51E4202C3BACD43FF71ABE7FF2FA2B3F837
D09E33E7E713991849CD57F31F5F70989C9D4E48E4716E3A275DD80F3E86BE94
9688B37F20AC7685A0AF887CE67ACEE71F15CC2F46CDCD8E11733B06F313D285
A71F0F3E96D6712F89982AF0B36CB436B9D641518D5A28ABB2C47F9DE0268CFC
C9863705CB8E5C7A470806CB46312735F41D130EC477CC0FE642B3180A285845
3690D0764276C915218CCC07EE61EE0D105B0C6B66502A1282FA5A9390597BD3
79EFDC845379423A8C748E6B07D318DB43BA0FFD5EB6571258C2A6D7D05AF09F
D084B4F450CB44D28E27A15E59A518FFC67789DC5796B04755188544F4843B86
F5B6B4455D1952E6A8A06DD52861E1D87290A5ADB8F0CE8A3425A1A8A64FFFE4
CC6DF447B87E3A603ED0D2A9FEC6067648D4F2687A58B3AAA4F0F86240DB1906
274BEA3EE77C5902AC27F3FBCE18F33E518E121537BE64C69AA5E6919CF1BC74
6F890C4AC094429118A7B95434774FE91C889D58E4138C687FB11FE8ECDA066B
94D1EE7F1188CEA8C1E5BA1C3E20D2918E4B6D9B6E4E51670DD63DF7308976D2
DDEE4F369D305A1B9B43067B9E65402584F79FB5961DF153F7ED45432C8477A4
B90C2AFE9DCA8F9A640969741EA500B2484C59F0F3B9594BC074E8EDB5D8CEA5
742C642456130B7A607FBFFA105A7830331FF989B2966695F859E0A047B90A6A
02743390550487794B3FED42DD926C2AAB24772864F8CCA48F247BA3F726CAE9
C34726F801C4A331E1DB4681BB55E80C89A920C1BD7D5FC14685C607B0D2AD35
DA5B50760777311ECBF1B50D6EE53926AD81D633B1B2F9F58C366DA52B4D9690
377981F352A79B4E1FC40F68BFA84C48C24DF0AA129CB0BA968D5728CE890C9E
EB29823CA70195D100BF69C12B23A4EE3ADA3D9D74B874719C908D371057C2CA
925326A914CA2BFE444334A8FC23E14F9E07484CBDBF5C1821E0F7E38B776E9E
27CEF10777A5F4B4B5E5D45153B0CBDD66218E8F61F2770A787D25E60A0110BF
C43344FCCB3F5F1CF0E2DBFCF2D7B891D8E93B968D669836A6AF07D96F8D7459
E8817E93F5ED256511B51686D76C12F8B8159D8C19B8C6A15B0B06360EF0AA80
88979F3F2CAED3F1B3D0D26BEDB8FC6971C66812BE7D1048A138EB402A2D1322
1BB25EB78079BC8AEB329E4E32FE04BCC6BF83AC0A7AC3C0CB7F10276F9449CE
054873C22F91DB0F5C508DDC032EFD9E51B3D6653F9AC2462F00E7D8FE3D4E19
BBCBEB83A612258DF486BC6A7224A86B83EFD9E77664006844DF9C866A076CD3
022380BF2604CEA26AD10C89B4F7347C3C35F330CDE294401E99521D1FFCA4B3
737C629EBF1CD38F75ACAA8145B17B82FB6081B167145E4EC1704CEFF9DCBF34
82270D5F83AE1276E6AFEEFB78B7C867B854D808D3202621DFCB365E718A47F5
ECA4130EB7D300C5A26388373EF9A278AF50CAE1928A4C1D5F4B498ADCA1CC87
DD355974511A39AB203BDFDD0700B78AB4AC40366D3C6305CAD250001198CF28
3060F88E7681788FF513C0FEFE61CF2C35D5E2A68336E1F1BD81C183DB4C1643
68483A6F15840E7CD2EE50A42E91F1947A8BC4BCABEDFA8966D5081B16689C40
CDF65ADF6FEBD833B0F9E6E587CA670BE54691D48669EDA87248580918A3AC26
DC2B8CA54249836190B9D5F33B8A76012D0D27FD9CA305A3BDCCBD5428FCC185
2ACA860FE438EEF00035A80CF13F5FF659FB992110D89EE996EC996FF96EFB64
3C56083A582FD4CE041BA1EC2E1196D578B1FDA2F4CA6275095A4DB31D60911C
B2D76225CD5DCBF79974A30C28A749F0095CC1372A306EA8ACB89F3C33B1B629
2CB45D92FD4B67EC89207E107E9055635734ECD380D93093A66143CD2C43A2F6
539FB7272012D22A05297187172C0BDE8630D0076A157B4199C651FFC93739D6
9CE7C6979B171D9AC61D7DBF519AE581F9852FFE75C38F8A961B3BDCABEB09DA
AE5291EDB93EA8D9884244BDF4324C63853233F73C31829A69E294171AF03FB9
1F9D6BA7E603C37ECB6310269FDEBA47C3A33A5042E89C29764481BD4B2F6B00
332D4A574994C0F1A2273521427D3456237AC6259205FC88BF946AF570CDEE85
BE53B6C6BC6CB7C81C775D7AD7B4DC33EA12D2644EFC846EA0B6F841F016FDCC
D728E619306C6461ED4535E301DC657463090849F620B5453ABC5A9C4A3E4DD4
87758F4B541C92725073E9AEC1C019F958898B67B7EAE5E8FF0128B92CA8AEA8
C4CF18AA019D356E5E86D7A0DA629F96A78C696641FC72BF3079D62C33CD4BC6
01E56E37778DC108B5B744B8E45E29A16B0564CC6188448F955923F063E4E05E
C4E1134C8B2D7160FDCBD9E2CBB43797B8DB8E19FB0D119BFDE5891751D17381
86D0C905E9CDB8C46B3EEC7307BFB4AAAA64A48059A0231A759AD4DFB38B3794
667A5290A6B4FBABCE02E129E5E9A840554DC6E8B9053AFCA8237D60C1894DE8
7753EB52AAAD318CE67650CA37869B6857FC7ACDB20F72C26B11C2478C50E10F
D69254F5A457E6AB96AA0484604FF0649E0DAE517DD6051CF2DE2135CDEAC758
B5A9992DDB3277364314FA63468D00A3018CCFEC7B0F4B0B7F2048BF82ED3C09
C89279A73D89C8D893AF9E8846948E982C0C7E57A23FF21D065AC1354185271B
1FB6A387F73329DE6E4DEC2E00B389A6747DF24A64EF4B748ADC160E79A4A2F5
2B6DAAAA03A0A816EEC6279419F58E63FFDC90409ED1A3A2FA6E15EFCC5AFE74
D395D636BBE62EBF9D327E9A16A3BFA23C3234A3C6DCD6FD7DE61A124CDA351C
6ECA6322341AB18831A0F83A14AAFF24AB5E9B7CA41EBF579A8AD685200EBF2F
2F512B5FBD1D1D0F157CA558C95CF2096E91C1861781A005C7C1374189D2206E
33ACF7C073B247D5721DA29B313F618F157AF1BF67EDA9EE183679F674B0BBE4
1D96B22ED62807F27AA9B50486FB4B41A57F1C66B2549809B72C094D368D18C5
6A6FB114A301F3CDDF3A6A2933990F6282BCEA6B977821A7F5B53028E6D514EE
1199E7586593CEC3F07A5209C253CB43E720F45C0F5146DF70D64E31F5F9ACD8
EC16516767164A8B4147FAFF079A378A5FB6941869C3487BD0671CDAC5672207
45EFCD100F0792CA24EF687D42C5246ECAC1F9A6A6EC0C0CA38A3862AF4A2E0C
6790745B8206DE933BC5AD13AEA9524FC77DCBEEDFE08DF8FBD7AF3208D15C3A
D0E2A0E51B61B6B1F3287E458B534B31399760B7FBC4345D8E369444586D1442
DF93380924A1788D93C4CE09EE2C13F0FFF2DF3201F10BDA5A250F643F6F4C4F
E13455C90F7BC4D522CC2E73A062518CA1F66329DFC33E0CA758E726035633AC
49E5727DA611A8B0286DA3FC3E9F9D1330F70E46BEF69CE8DCFD6A017F1A26D2
6BEE43E6C55567E1CAC7ABAFEE23364F5D89AC25DBE0A45CA3A47A95CB97621C
70439688001C53D999EB3DF240239752C5425AA987C12956DC1C5FEF49F90321
CC7D704DC31E4E695A55F857B05372DF97490A8EDAFE9C6945868F82EB39E72B
7F696365B24FDAE6409C31422CCED2DCD23B9969CC5B4FE632051D6837CDDBFF
8C5A1C339A6F152639F04EFCDDA76921C3389AC750A395D9F12E2D0BD556AA7B
B0D6E4F218D5DA2A77D4EC9FEE71942BFBC0D323F4457C56BFB5F4C23021B854
C8A18521882F3824ADAB57A0B547A2515431622D658A84BC5B059381A9583EE6
88992D26B14D80DA308A47ECDAB5BA43E2306D264B304747204784A0DF0890B0
3CA8F634421DA83D131A175158F376746BBAAC6BFAFA3EFEF7758EEA782FA6A8
742797FB4D9D1AA187B3E6BADE2B9D646820C2960E9839BE7CA51EBBA7D79409
0571F98B96C7C7A81E1B5EA3E3535CBFAF790FA09BF3C73F3D669D002AF12EED
DB6F0A99C70D28CA77FEDF9544DAFB15F76654192AA0F3F50E18E55CB8731999
BA3B80EDEDEC15811FAB2981EDBE2207E3B14558DC04B504DEBC2026796A5CB9
5871D0ADCF7F5CD283063307C785936BC0AE8C5B9149A2A53CE99BBBA6BCC2F3
D978494CC8308EA04C86E76E22C06AFAF80BEEA9D4635742E5A06F5D21292978
E0D4ECFEFFD7A7D7E4B5020D4E117C2E5A3A74F78BD8AAFC01F201B2FD4F9C76
8F297EF69C6F20960F7007C1F569683EBE6FE210CBB5C6007C629ADD87B3BC24
202274DBE861692C2FF8F68D717DE5353B54FB58AC88E91408C66938A80DC543
8C18DB67C41D70A3E8260590F001608B074AD05EA68FDBB0DD47199CB416FCAE
ABB44129E0D0E2FA380CF9B06AF8662D20B39E0A7FBD3B02A9A54FD2366DFFF6
762EE3D8687906A33DE3A07689326CC44F05A5A4CC63B31CD87F5625F741D569
C5F6582B7C14412764AF1B622CE2014484F553593183E155805971D326664483
9AF32C539331C99C1C04B96BC42969CEF8790961B9D9B2CE7D4258BE201236BB
2ECC680EDB014785245015FA6CD0EFEF8E605E35CDF064A793665DE0B63ACEC3
765AE1C8BD12860E786116836A7593AD969D93B25A900ED2ADA0037283DE542E
74430A1E8FA598163F25216566F439E9534FD8EF31FE392960B6C9E6BE190ED4
EA7B1C87C23DA1A1A40F6891C8C3A0726BD56C7C015B623E908EA35E1BFBABB8
17662F725A37A5FAF047B1449E72558BDA9A69EFA82083C7004E40FC5EB79EBC
7B2478D0014CD7ACEF46BD9EFB6E50A6AB336AD9125C78E1BF2B8EE0200B4858
AA4D72BA3B30791C45DAE1186860CDF2C3080CE03BC659C4CB3DA89604486DA9
64BEDB5C5DA35F78C48510ADFB76F466158328C9C16238A707B344CAC8659695
D2E0701825B345D0B23F0094D51D7222301368FE98678A317C492D4B6F685476
32FF0131312FDCF537089B68D789976D647576130E797D0A6A96CE27839AF76E
88AA152552AF3A6C0E4A675776F7D006217ECC469AE0E47209F16090A06B6518
3A4DF99E818719E5690CB3B106D749E8B5ED61DC62D3013D17A66F0B2EB39221
BAA05A941696C445A605251F533AE8B4808D07DB71F7C9CD9313A6B75C53D685
1D5E8423D6A7A2E1FA224282D2258002B83A439184E61D38C660F3F7CCD561E5
D1D33ED027313A3B8AE9DABCB51DC7EEE479A08CF1BE0D8F7DBCD6112C7E8C08
15EE950E8859B1C4458AFA801135456AB9F64ABADF635DB22F8BA598773DF1A1
EA776CF803C29B6615B225B9452E9D34A00A2A9CB7C15F7CB419F8528D81CF13
0E979FD6208710171D6915E757BF268C5F1A836F93652C4EC8FC9FDBB3431793
DB31FF285D13590FCE3E400EDE60C6EA559830C5109D557D5AEB60B1548EFD08
7E083AFA53453B90DAAB31933F87D9FF8A8348C152844B5C6C511D1728703227
F1C0F0A319E5D8DDBC1CA1A26F600EA9F8D89B4023B7F30DDE26A66ED0EE315A
CF51E1425932EF87F2117B3B7AFCAF163A83DA616DA2F9F88EA5DA8C6D8EE48B
93D63A4FC2414D34BFDBDBCC5E0357A6FC5D96F45D654D69F3967EFA5C8B565D
1C7DAC5B934C07BC161C057EC846F18153AFA6F2C13CD6868D187DB2D45507D6
2F5DE11EC8760AF470CA23CB9BA16EC300A5E3C2DC6938BAB15290C417467EC5
DC3CB99F13E8DA661344EC5A9F9FE7FBF4E10A319FA16EAF7B72D591355EAFDB
12F663D55F170CE29B1219C7189478F747DCB117B62665F5FEB503ACD594F629
81FCBA71E80CBCBD19B0A0403E6D3932F82FD829287516C3D9EC3FC0D96F2A25
32AE9ACECA7CFCD864D62652A089554AB3A6F42801A4FAAE2EDFC9286D5D6037
D5BCA1FDF14456C48553FF2E558A933762034A77CAAA09D817C03CA37B6ED13A
98F32F7B6397E1A80B1FAF2FA820E2340E2FC4F6E55210BE7CC6A2A1C50272FB
6BD506DDBC958A1D90FD4AEF534B2504E60263074AE575094547907605879657
E455F980E3E2EFE83739DEFA0319809E802E30C66C102CC5427C1422B1B922E2
EF5A5A00CE08DEC91701838D1EA433EB812D06E8C81FC9082AC58C1F6A69A056
BB90C8EDCCDBED4CD14B5E07D56650ECE3AE08A5340023B6AD4B9D9BEEE31581
686F7C4DA5E69DC80D0114C956A8EA97D2C641A3561FDF0C97EC79AD7EC24B35
C06A45615E6D51BCD60644A18D9A264E8416EFB293F0D81565A74D0CAB002E12
58D09254968EA893D909D144921965774CD641FEA13514734A24089AB4C9B523
A667B3FF0F89C1D3B450D80B6B1438988C07193BA77FDF9B970DD72ACE7F2AE0
47A5E9834E24FC2B7747ECED183F0C23249EF4ACD5374A14A896974EA77D1452
71D9982F9757B6D989E82DF33D48E3A7FCE4744A36FEEFED58C1D3FCDAFAF059
0C3BC8025EF750C9A8436A585E1881E958619F555EA2F084B846F9D4B867BEFF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR6
%!PS-AdobeFont-1.1: CMR6 1.0
%%CreationDate: 1991 Aug 20 16:39:02
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR6 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
readonly def
/FontBBox{-20 -250 1193 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB663529DD50
29E1FF043619C3969739047DCBE0806C6E7ED2CEE445EBA23109D4EA1AF26BFE
9CEFB8F80C4E811C7CB9E4F964F4A095E6456D80CFAB4E4FEBC91333683E769C
BF12AB4D9AFF9738E8F5FD33E5E64D2DA80D00B697A2DB83F44297B501AAD801
C73389133F28E171C5F7E84A39D16BCF374986988FA525A8F0D6A7024E39331B
CF80BB9CB9682EF2C3899C12B3D8F196F45636CBFB6B23FA38222B2B3D667736
DC4E61B7CDB4BA8F06ECAD6E279560B467C1C808146FF3B2EDB14ED971A023F5
2E2F1306654A905BAF872411E832B345DD3BCBE7D4A30B128B2A06BA7ACD95E1
A451AF157431B3AC6B429A8883ECB107615C9B79C0866560AF39B2D4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 43 /plus put
dup 49 /one put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4CD5C7347D2E
1D0D6630F446F3708FCB29A84043FF9994DEEA972C57A09A9480DA27009892D3
09A79727975D38D137A647156FB47D79C82D49F5DE82CE25B3D0FA203BC2648C
DDBBED0FB787FD8379E5EF25899549AB2BB32D748C379AF3CACBAC27C5E424B7
0C0BEC3B9B8D39F08618FB574A5DB5051C2EF449F9751B168CF2AE5AF23843F4
70DB2DFF96E724588920CAD3BD1D845490D4D6B610632B11F78544DF8D459041
0531F1E25F6F4B124335B3E097DDF640C6E287C77BAEA10D215E08FE71F191FC
B916A9EE05825210880E42D6ADCD64BA8A70FF92EF3DCC9DFE823F458B87AD20
84C1B6994F1553B0393790F5ADF2BA6BF8EEFAD6F22C2BB3C481A949F65E2B1F
12CD8653230A69611FAE7394310C2B0427085FA5DDD46D0919C327A9E464BA04
2CC1D25D58001ED2E97B26DFEDD83431FA13BC0559394859875F5CBD2A32D50F
7C2406CA677DE52F4DD804239E39A75D729EEE5A520161E05E3363732137E783
AC79A14436C5C724312FD1066E68A8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 25 /pi put
dup 58 /period put
dup 59 /comma put
dup 65 /A put
dup 66 /B put
dup 84 /T put
dup 97 /a put
dup 98 /b put
dup 101 /e put
dup 105 /i put
dup 108 /l put
dup 110 /n put
dup 118 /v put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
95601766758820333028C2295F4A921FA3F2A6AC5D3E60DC36225BBE9A66AC62
07B8C639A6EA132A189DC3675C39B548BDFCEDF59340CB1325053F06B4F9DC33
7F6081D09160ADC220C6360D33163FE2B48D43CAA4EF4D150B14A1C753AB5060
8A97FD3512822FABAE3A0D589F3A4683A78B81E5E545F8F2C9D92DF692BB56F4
7B7DBB4BCC473ED05DDDFBCA314379BC9738409B860057AC2A3C7FB896CA035D
594D75F8DA32CFD90346B0CE19065E71016EC50F279A22FD5791F9C097DA9126
389CD21CD00110142A92A959B82CC52B39CDFADBD57B14ADAF0618553A302BD7
85F482C9A05CDD76054A92CF8927C803AFB67801FF46443856D4DB46179A6A6D
89FA5FF420069D1E364CFD2E7FC9B8D779CA2EF7EB41BF6D7855DA1880A4DEED
BB16ECBCFBA89CA2FD236E4F3521F208E0E9EBE0A0EAB46A5C206127A658BDDB
7A23937DB120F0A180531219C6DC47907DFBD151E4ABE5AA9A6CD01DADEA7F09
17F5D927186543FD257175410805C01151BEFF0E0E355CB7EC8C31C630639D9B
A177770702495A49C39773CB29D2C865FD3B46738072DF326B7D467DD44BD4F7
4475FB6A43DB14EB710B0C1BF7E8FE7FCE0530FC9725C5DC99C271C75814F2DF
3BE4A99B8501730F24AFAC68E92111BA43A70928BFB254C0DBB3BF360C792A41
E7E87E9D2A1A1611A76D48133A94C98655C9B9EBCA9FD7AB438A082B0DB7971B
5D231322B4A75DE95F14670E23C313BF2AF54E02A296FBE987373FE29E1818BE
54D3886EC42F861778AE8352D7D9362F1155E113F0AE39A13DB3177606372535
00E0E79F96FD53A8D1CAD91BB49616898788D745EB78E7AB5610043678FBAC48
92A7A7AF13B334B9117351ECAA0023A2C3A39FE2AFF19A877D64D965B83A6DF5
0F64873C6916A2969B011425271F86A51B7CE4C618BAAF00006AE718C2797C0A
A7CF6A27F983FE01C7E65FC48C7FFA18792185B64FA4A9A5B17E001B6A6926C3
4D1A63416833B7759B2FD177501154F389293DF8A345914DDB78016F33EAC2F5
3B2C51D48AB31F93617B454C36261B3102E2BD150B2DAAB08056FDFE13806F50
E553B83249F3BEABF12EB339676EDDE418B6C3672C53DD258DC1B5F745CF9128
AE6C4390F659A5174D7372010215BD7B2BA93BF37ADBCA8724FD31E9995A2B4E
EC78913C61A5C5AF3272788803BA7716E74B802C4E3DC716C200DEBC495B4C14
72290069D2C92D7C5F0F3D820D94CBBFC69B8FF063C0FCAD55905F340A9837E5
65FCDF5AEF0854329B7D6D1BBAA2074F2C53ACD22C2129168221B07376788F64
86F3261009578528BB53386231F9AA3A66659F6C8426CF0E7DF6D76C280DA9AC
BAB2F8F3DBB9E58FFF255C0C67B7896EA08874F57662572A154B72DFC24D7755
AC87D72E31A650DD4BC413B99243A21E57D4F2D402FEAF7AC8CBD17939649F82
D4166215A993DA9D8CFFAE70F5E92DAC1D2E3F4AD02E7C9E53DF160C76A2003B
7ECF8CC3C0B60AD8F5DC7850B9916EB5BAF241CF38B6839C9046A5CCC9E3452B
DC99E152B7DA6BDADCB35B6592CDE7706392DD83A2649896812169A66FA4762C
535607BE5F486714208D9FD5878942376A2433FFDEED1FEF9E3EF94BA9EF0DD9
BDD9721ED52C36BF48CE76998F6C3FF0428B1441C2C0EFBF9F2C2FB695CB3B61
B543CAC51D9FDB341DF7779B62F81197EE5C3C24EA4E4331E8DDC9E87D49E646
6F65EE922FE3DF40985267D905AC33AE5A4971D549DC289DDF1E1BD87E5CCEBB
F80660DBE33909239F23178E043F1238FAD0ECDF16608BED834346B8DE035704
6D6E2437D83DF07EC66B374A7619F2EE4D7E91F6706812F8F29B63E14E6E29B9
E8CB11CDF4AF6AB6BE17AE6C9A122C9CBA2569347BCB111F8ED84E262D01CACE
04CBBE388B54466717AEA83769F4CF498629E527A03EDA32B3E2B6A6B227E52D
06EB13C8F8D783AA44DB7B3AEE8F0BC521B613D30C365B722A8DC871454CF607
04CE39AB94DF4C5485677B336536FD224CCC067FFAC5E657EBCBB8FE10CA2E58
C5BFD458989FAFAB9E15CF52CB22C931988AE03DC7C3A3201048CB956BA38A79
3894401E8035A34C05A14ACCBE80D809EC43AD7720D2D5235083E2512695C5C1
B6210B36BEF9781CA9CE39A4D93B40C499FBD6F225F01F43F1B6BFED95F5233F
5F941A3E448A32174632F0F840AC047B0A9ABCC46C496E3848E717FEB1E5DF5C
93E4168BEFC004BC8C879518AED73C84425A9F9612175B28109EA10F1B9CAAB4
F671AFBFE919CEB5B73DD3F2559F79D1A94F6629DDFAC96642DD8581D3FBC225
8D8B413EF93E89B72C32CFD433853AFD79060CDABC2804555CBFB11A4385F24C
90F793F7F4DB2C4022AB16E6571976BAC45263BB0D9C4CFB9C55C028CC4A0C09
482EECF1618AC0A03500EE2843CBFAC54F39EA244030336800D26AE70C960FCC
AC7C30CF77A5E70C0BC64BA81AD4820716A4E58523173CEB5F882C50A6E008CE
FD74C61118B4FCADA1FF1798D8AB7315EC2745A835036A9C6B216AE0450AB21C
AF8697582028CDE86958B5361840E33092C196BB74A06FAFBDDC34A7072A4193
348D8676E40D31474C89B421D86867AAC2E19204D76135C3950CA61CEEE61D92
2D13977C5F37393E43A9CD408502DA9BDD278B4452DD121F90E2C18FEE49A647
B1A1EFCC9CB7EEAC0CD497CEF0411EBC8BB24E570F1A349C13DA44115582B7A5
EF4E3EEBD84D6259D44C8FA2436716EFE9AE59F3DE6EC5EF28706544CB309913
9F63F8854567BE7AE24E111F0A73AC143C95947558D34017EB8A78F8701A3944
02DDD2E795D534ADD3B037A5371FE5D7DEBA756793A4E86E24FA7160FBB6EA80
4A3AE24E039ACA4C87D8EF90DA68059A8AB27892C42CF57696A56792115657D5
792A8985C20A81B3A98B44E2899041A985A907DFFE9E370015092A30BCBA94BE
9EDFD2EFD291CCC3D61FAFB613B27DBCBBF1C8644E1467B51533FB5366E820FC
6059F96A5175BDFBA940411C92866BE5996CF1D4E3A351D1E113ABAAA1D2744B
0FE049B9AF5F25C1E9CFC8D2B9E53E5B0D875C9EABD3EEB4E919F4A0A29D534E
FB1B30C5457B3AB48E349F70FDB8E9539BB00F9503BC2633F6E550727DA196C5
1FF4A0DAB2B10807125EF4C7A2A3430A1A0C6CA0CCBE96B793336F5B3FDD87B6
79AE33E4F6E24C62A3DCC5C3D63DABE6FBEF5E46F197C6E794489FDF36FEBA8E
A49E4CFF1BEAF829ED71765E128747ACB6A4F1A8787954C1C258CBE575298819
B3C9CBF15801D1A3FCC0DAB58C6FA0823A13602AEFDDCB2A869B37FF929BB669
4D0DE1F3F15DAACBD21CD3A9CCE2412BB5E86C4F753EF35174251AB64061CB50
2E985F2FCCFC28D093C04FD25B6652CC7F5A7857BEE2AA1FB98D65FEDDF0F79C
5AB6DA4A15773642
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 52 /four put
dup 53 /five put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 81 /Q put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 88 /X put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
readonly def
/FontBBox{-4 -235 731 800}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
FF798F2ABFC4F3539392985C4CB324B0007229586D1E0321559F67C057FD7902
194490A4C133DA7E04E7895F3C8786BEB6B449472C32E3AE702291DAF51407EA
86DB7DA1EDFC73D7697FD45E3A2928746BE164AFCBF8F5E8058815645D2180D8
C19938D79834F4D677BDE57E3231402808137187C94E45B679BD59294184EF54
172447AC57A8B69B4DAAC8F618ABF991848923E62F7B9142756A32C12D6B786B
F5139959DB50AB51742E41D7218C353CB2AF185ABE396DA982A47396FABBA2C4
D217B4453F79BF5F1DE180C8FEDA14CD86697296B535E65EBFE1CE914272A8F6
3D4954B7DCAC4985633BB621AA387833318BAA5240F51C2D034D737F2C5D1937
23DB6493118B91A352BE082F5169D762FDC1622DF8D7621812685D7D153D0960
6AD99F9EFF41825ABDE363A8BBAAADFA0C7AB05A3597D5A86366210C680052CE
D9038CEFD264D2A944DEDA2CFC301DCC1BCC2062DD4B2DA0934FC03205C688ED
A8BD38D0BE91FD761C26A48EDBA6C0ED7471074F78A1ABFFA444AF34527779DD
D9F95B94D43F5800500635C87E06969315884369E0F90605D0FE32376330DD70
F2A9F425F48D5E37A9B555911237AB5A6DBA34E2362A11E0BF7854BF482C54E5
59CFF468848F78B463038142F21AE452F809DC3DE1EA4D688F809AA6C9A7FAAB
024D99E58A66D35D6940A3FB5728DBF1CADD164C8A582DCA021BF8067101891C
27B34518705A36E07BECF34BFCF41D02C7E90919C2F050BA73D021C39EA26F67
7C972818BF8C8418EB0A23AE318067ABC227F885BD83F27EB199CFB98C02CCC2
B704ACB33940B18055D15945B2E1CB891954EADB30BC90A96E50E14E8A6E5ED6
F997BAE41E388DBB59C40E5AD567F556BF4A29D2D2EF909CD4A494458C280644
4660BF624BDCC8A5D5D2728411A9B03DEDE959392226C2D9AF9CFD674C202ED1
F6A1D6AE469CA5B9E69ACDB128E07E7AE4829C0D5D2596ACBE7E4A8BFB9EF54D
E028A8E8F4BCFE1932CA46970427C0E0C285980C59120CF9A96365BAA62E24F0
6FC7ADD81FA8D87290BB592E405378B9A26CBFF4BC157CBD9377F8C0780AFBDD
05AAEAF78EEBAA0A0BB6890E515DD23B9C8D65F04D06521E60F66F7245775A40
94384305F2D1BA815921277A72703D7AA414BCA5A90471D42F847527B32ED7D5
FC82184677CACB9A271114650201DAB51989C4F0C082ADFA60248637B53DE7CF
29BAB42D55C50033B5EE9F49C9112C6F9345EA7788D8B854E1B11BCD60FDD5B2
18CE3785EBFEEF2092ABC5998F1B144116F480BC0779ADE54932A1A079474E11
3FDFDF8527A01C06040D4BAE0FD9DC3D9C3C361C97C951CA5441CFFF81620428
28B039A5F44C109967FE01820D1037180E33C3375358712375AF16D6DE562567
6E3416D179B3F3544F69E9E140F123ED28D72DA05E1B5CA559FFFAFAE08DA8B4
2818615E8CA28CD66F3F5FF3883F91EBBBBCDA4CC6DAAC2BDCF38ED860D88C7B
A1B9A1A34FA6E7FA2C9B8B524228E1F2ADA6B547D7CBD94AA6D702FAB05D924B
FC54FD9191C3C3843C1B4F60E0767594AA0199850F155FEA72EB44104D260178
8B4F9EA9DA3321FF7CB8FACFAFD3E55D684E0BD4D0F9BDC3515C3B1FB353DD1A
E40CE8A2A7BC690A4FA68209D27953157C90E5B3A99C9658B87ED66DF62EFE20
A5FB2F3F7ACA8B97791CCF7CC0F83195862A05FC852625A5A1936170478C3771
D4B5419DAC5565E77463F10C9EE7F50E2A18D0CFA38C92D7C4C5DC88BAFB886E
98455E73221D1CE2E8F2D005D6365E4E3EDBCBDC2556D620F5A23F921DFC89AC
2D82C747A286B5CD6653BF8541D241D9E2B7C8B09BC59ACD792A132A286F96D1
8A909E31BA668E660A1C7128B702352C79B6A83D81F47CCD72A3B00CF373CACF
025857B9A6684304564FE98BB41995F43F9B532BECA815089ABB1BAAF1523B8F
4657C4C097A8746FCA5DCF2BA70925D49A3763BA511DA14DD0D81B32B3E2D993
A49CB520F0ACD1B3817EDD48ECA690AEBA48F3CF7019BEC12AC9A912907BCD22
69EB4FA7134788F5DCA1E1CE46BA4BD36D2DD8E3C1E11CB06A7AB5EC3A6127BD
811E792DC0C4D4E8093BB3D5D91E67B7F31BF0B10AF2060E01F399984706BB2D
5FD4FBF0F3C15296BEE8F22BAFBD22E4142DC5D70B5D3E2FAD513C4006EB6E59
E1F13878C2993F2E4EE233A6B8ACC606AE25375815E9F4A8C63E182F183FB9A3
10799AB0FEB96F1E5B0D1A0FA9179996829415B0E4DFF5E652AFD9058857D2AF
C721A15D69E47849BAB6A146DDDCA0DC1A2F234F9442654C6D5908D4624573AB
44ED82934C9E5814A1075D5C1D5CB1409FC16DE22DA28A67E62582BB7A47BF84
DAD9809B4C93EF151F64886A4F86AD5930640C5EE41C0EE769C0816062A9DF7A
A02CD4F0C794ED5B58B9BD82FB5E09BC6BD9ECF08861CD61D84A4E26BD76B34E
D0F783115F3A46181565995CA2DBF10C01B0F65FD4DE58EFCFAE3AB5A075766B
812A966D36927C55B3FED690173276C06F3B978DB7DC744CFD0E084CD8D542EF
370461AD235E3E687F6A2F29A539B0C571DF42EBAB506AFD7107F39E69E521D5
EE35263285545A4F7CD6B63709326AED74300A53134425855EBA83485AB21552
1FE95FC077570711EFE46D8DE7FF1350C6A243E7DDAF19827DD9B299385187E2
9A31F26E3C0F3D231388B48C1A1255438A32F6129A1549B0082AC32A3FB0F6DD
33C5D704351EA456CDCF2731DD273717414E461BED763735854835188930B55E
5B4AB4D71E69509F234CBFBFA159C2FB4E99F0BB72D9CF95BB093929895CB7CA
D668B490289D3828F54EB3F05B0350BF88FA94C3FFDC50CFB645E11D64203A54
87945F28CE3F5CA4F819BB5463234A35C2EFE73243484F9F21888902AEE56521
5F1F378FABCBD2BE53FF7E44007205EA58ADD6FA5640D8C5101059BF107D0E44
A063747D07A0E18E878DB0109348CC847EA20AD399A3331A325B1F8BED338FE1
38E27CFE78C4848424CEAD71F4C3701FD03E90FF7A6D1B9A9C391C8D9DB32A67
171FCA6D51C124D40802B09448339282BFEB3B0F00F85679D1B606AE3B8887E7
28042A0E29885D5B0C584E75F009DF61376E53504EE84E7422E03D4F1F2E18D8
8081E1796894D7153DC7E49059E45ECE76E19DAA5AE3722E5CCA8E14469653C0
E2899D0F0889985100D9FB318B21DD9D3A8160CC9402BA3CBBA198FBA6602B03
2545775251B7B17E89FF8D2A03786C4B6A45B2BB73CC8DC4647E40CE6AD4C4B0
807052052A119D471DD356331A393506A5BFE5BC1DEDE84EACA1C98CC80AA1E5
34C75F7788BF5CCFD7D1644788841B20EA0CDC8AE1E5161A181F8FECFFC36965
6801E29B9DC899236FD47297FA6DA4824B46A7DA712DEACFFED8703342A2A91B
A01BE16C561379B7835BBD558F73BBD01FD3C93B044C7EC6876FC9C1224C7436
B1F998E82EBF17A210EB0636FBD29DAA9911DED6C66A70C3FCE5820B1453FA36
983D3C43EDD8A68773D3C55B77975FD4E8009218875BE1FFB4683A4C68451E61
727168F457AD5ABB2CE82C0CD741519DD80373DEA350D6294982C6E29B426823
F5581967A6A175B81D72A909E6E30EA6D89AF80935030B672A02371A91B74549
7354B252D48071E46692D05701CA6B0B1370A2FC31C015446A5BBFE9610E0565
CF6358FE5BFB5987308C5284F561A43B7DBDF55A6C5E44BB2629B3DEF25D41E2
24206A81C65F403DD79564DD42878366343ABAA12C5ABFCF98FC8A9671E0A73F
787825C192AE8BBEFDEBDA26F3FDDDDE42E5817A6D2C4E61199D3AC71A2B7130
C378CDD3E829C2562F94DEB7069E9D2AAA5AED61E393A816B31372226D381BE4
2B10C9EA26336D78A2C4485C74027D967A1E7B43032B544364A5885F8BB478CF
11A21897FDAB6A9D976C323C39C4EB57DC54270BFCDF7601FB5D06C59A0CD7F0
09AC5391211A03083CF6CB92F466F396726FC1D91CF31B55E3B9E6C4B055967C
7933840BF333A79892B3D2F6A983109E54284614230AE88A4C38DFE458E51DE6
D77BA2FF90C432F62DB7322E719E7B485A1F48704DCC7F07498618B5CEF5695F
85CCA39B964C4C083E841164F88A4C5F4D098AB0518655D839F316FA077DD505
9A071512C3045C05459F92EE7F424C9F7DAD8EDF1B886BA2A0EFE978B20B9C26
683D6089E57E60BA3393176BB598A5B7A164CDFDFA19F7E411562F687DF97DCA
47D729698CEA16831C5B0E084F56BD0142640504BBA88F522E1C4312B4DB0E15
B50592626B337DC5A120EAB33C9BF87AAE7D3AF5B224BC85D6916EE06AF31BF0
F03A7CC5673816C2975623E82737C9F1FC0A7751306A6E0095DDE50E20E83666
B57543D761E6BCACD2AFDF9D934EC65A91FDDCC30FDEE94753DE9E36E4207094
72093FFE28B8D9BA2F7CD99C266B7791D42F081F5AF150B4DC081B025CD50BBE
DF2406C1BEA5638430E595BAD21808AC7809EE925A7EEAD6987D6CD20C9BEFD4
773F62F3D1875559692883F0F83490A7975F269B7B44D1D65C26AA6EA133DEAB
C96806FFB71BD0876E7E339C8A433866C62DCB052CCCB70A2AB5B3E5A783735D
DBB0BEC74B7FA0C4562BE92EF78A3A4071E51405FD8B9846AB1F6504BB9EE248
069F98EB92048407C1C49400A7B163476C72F2190AB10E40DF4E63461AA1B361
D5EB6E97000B074B2348B1DAF59DB4FF49C71B9A10C8305168678688C9089BC8
2BE84125D168770526EFC4D0D5EEC1A9D4692E5773650DFBFE3CF290BE7CAA5B
2C9DE6C7F234BBB238428C8B5DA856EBA7298672B417CC513E1AAFE056411B57
67218CEE5A713DC40179AE6D1AF5670595B47A9104E28136E76D8DD71475F24C
8D44AC90CA06D96219CE97BAFBFC98A163C175AF9E815F37B80694ED8C0C9199
3E739D132DE2FDFC3E0F3882B4EA293A325A75C76013DA3E283C747AB5C67825
3001E9C6E413ADF1C8B58EBA5CA82B0AA062753082DE1EB793F02701064426FA
885DB451E0D55044B2FD9579B66D89BFC9F2D4D83CAC2F32B79CB196A80339DD
83362CBA84C04E19CA2FF18D8232FB433DC7D0FB6AEB641BDEE74544DA542992
271342FB90893CE40D331464F1C778253989FBC3DF3E558C66C483AD1E003AA7
2AB6C0F70556AAD45752356F42ED3C2ABB50BAEA0490ADEB2C661C9B911DC979
793E47A01203E6A7BC3E4E2CCBB26046B6601635704426E28C656A5FBA58CAB2
AF7C14B9867A5B1C6D043EBD1B6BC877C7B97CF72FDB67FC007235320A59DFC3
1705ECFDD0565B0AA4A2F5AA7434EA2A2C71158F8AAC6980B50792B4A8050B56
4EFE6C04A56590A0D0807AB76413CC12B91547CE463CA021D55D9953E55D3DCB
D65B19A333637D1926011F1455189566EE0BDE766370158C8378C95BFB981788
515E02AE49D2D92C54F8B08BA4D0C6A3F278288FCC229A73A9C182DE79A3A0BB
80500571B0834E0B1AD1D6DB7B701841C5F23FE09CF49C6438D6D3A15BA6F1DD
337C359D767F563155046188FF35415DEC73F2F804EB98B4A91995C4A2538E5B
4D1625A28AF6AA53F5AE430FCD57643ADAF43EB4159F0168453B46463945189B
D8CF38D0279FA60C9F9950508FC5FB9D1D0D31115C1F14B23FEEDFC11DED114C
BC745E7F955DC77D27FB860BA01931B690A3BD070ECA714649ED06B0A5C386A7
86C148803F9EAA5ECA28E34C138039B2F2BAE5CB551AD4FF665A68C5B34E8151
2906DAB5988F06E0EF5B2C322017BADE3BE65D6BB91AFF259D15EDAD2FD4A816
3C176526DF77153182A2362B63D89425B9A8F7311A0D36A76630E3E5876DB0FF
5162CC57F4471D4B640B085B90EA97DBBBE1458B69D3E48AFC7C231FA6D26E32
B98E212F5C01FB1A0356BDACF34AAA951B6FE796C1C3AC709B3F2941A818AAED
FAE4B0815CEDF256CB11B61A6A14B2FC1323A04C2B1B2F83E29DCA01654C92E5
23EC0B00975C7808BAA35394EBFEF996E4E03C0E9106101F067B4CDFCE050BEC
984D4A8BB7E56BD797BCFAA03D420EFD8243FC766C2EA827096A5866517384BF
4AEDD01E167689521A67BEA8BFB0A4BC4FFEEF95A486074D6E7A9C685E8D5793
52A81E9921496966DCC833D563BC9A9A967CD11A9623DB4F6F8669EAE869FFD2
578FC9F0EADB8D47E1290C7F0C6B2941BD246961D9D54762D992D4E4CD3154B2
B54A970B5FA3FB85A7ABBEE6FBC6CC044566EF41782408F7B7D28D0F1D070068
FD42EC84E20BD418671E8BACD80771BC2C28E695725AE904977AFD9A8F51BEF3
11AF5073BAF36035EA628076DB70838ECFB7690C13947DAF1B6FBA7DEC2B4376
32457C42B13A91560A01DF66D8FE540933064C692EF5BAD223890712C80B4EB9
5862E7487B1C7C7B3495FF1AD69B3167E9670CB5B9AB0A69906DCAC8A5F75427
ECA52A128787156B1299F3E717141CF2E35FBDFB0F769B32CE120EF3FB5699C5
C70F10049694FCE44CB4A0F8A8A354A2E43719C4C1827487C23ECA2DB9E8D7C6
FE7E41656976DF580C2BC5A6A1A27CF03A40D97B4036CBE20B44A0C50650CC74
9AE77EBE61C999B8DBD4FC5346EC29353D84C1AD0A4A58CB1A10F7E3C39D043D
3547B0B1A445B265BF10F399934E30FB43475292A16667EFC6B17AB4D34B2D59
DE90A6BC09B485E0A9177016538DDF27E9F385CDEF03AC475A43E593F0ABDB58
D997665B115AE375FA109FF2CAC1C6257B9AB47A00F2100DE73A2C1565BD6280
759FCAA618786D8C88B16E9FE5483AE36011D7CF95784333F8FC5DB902450962
D3989E45A41E65A7C51A70F91ADE497EFD6CBD14E2956BF5866F44C094EA70F5
F42CA291F1F7EE097A253A270C37E4671A0E4D8A5687A60E8A1E65D50062F495
03EDAC9B81D5C86096E1F9D1AE27A1B9C03235FE298C999E97769DCD1BD8A4B8
C72A25544B01DA6B23833FB7F9F146808349A9C22964AF1444E9D7727033582A
BBFF682631E94BCFDDF56E49E63A01DAA26ADE1E25D33F188CF7FCFDB2EF76A9
1A1C2E375C39296F3B9C4C744DB9A2BE7B257DC2AD509AF0E9751B2729F1FBBE
35AA260894146C1D21A61320DF18188BFAAD75E69775E8D30C2DE0132D0C21DD
CD0D0EA6849F8533A2BA61F53C156D9942B0D8E4E272279D0DC8E46C193267C2
CE280AFFF9CC9A951D39AAD8F9E05BA6B1F72B513541AEF2E1BCCADDB1EE1C2F
5258DFC4191883D82968855C7781BDEBE475F92D3F51938E4AA645D6D32C8DA9
B502B83CE26AD72CE0E37254BA1F095D11365E6AF438D54E390F7B1FAFED3B61
B0FB3A0C5EC4677A2F401DC60B5B27A813B5E6B94BC4A026E522A2CAF03BAD2F
81009F6E9DD1057ACA5C25B1AFEC67750FDB9CA8928F47907984BC3E48AF02AD
7238D44CD2D986B5E095BB9AF4FB4E176432E01B9B26D652B5D85061120C7333
5613B66EA1842CA71F232267E35ECDD911D2A708C953EAB26C82ED029E4CE99A
3ACCA0BAA3217EE0FAEB50CD5AE9CF64BB600D644DC2AFA7FB4511CE597DE968
71AEB0FF023504171B29ABD1FE1F78246091A3E33D19FD6A99D39D505C83294B
CAD0CF965AD8FFE22F60CCE0984DF7F654CF34E9D3B9EE358B5715498370A895
ABDB0BC3BD7EE079F83DC6C764A858F958AD7B4C8C15233442C62ADC362A3165
363C39C09F0A05F8A059C1F99F489EC397C036887D0EB00258C1BC7652D1091A
5CBF3FAB1D07D7276FCF56C866E4E1DD934BD95404802600406543B87488E0A8
03FCD2BA5F005CAFED9BF00FF0D4856279D9B6CC80E728D3DEC663651A0EFFDB
44568E077D2C274C623AF62B11A66EBF990B51511743B0568BF4648A288D77EC
6EF8B64C7FE37174B686A64EFD9B7B4CC99868AB0782AE6DA5D736C46D60FA39
BABD89015F3C2E90FA6939FACE42BC4B3C0DF61384475843B44C6EC8330B6D59
5D9A3107920ACC5A1BCB3499FC8B55B09C4157405F1786A6AC5EF82931F893FF
E92664BE90C9BECBCE4BAF6C1E71795AD293F55505ED70696831AE4353B6B9DD
95271EECAAF0FE93F8F54D7488178D53B30C5F6A0E2EB638CE3A4AF1D054D366
4C4BBC7877117E4FB058EE953DDD2E5AC4A89C7DFF6B6D45C022CA3EC0B35EBE
C9E35F394B1FED879AC36686FE5CBA8E4F911BE80614BAF47D9E46E40682DA71
0EE63AFB5F2B94A7DDA6191A2D431DFC0B92962C88DECF071E696FF0A39961D1
6466A26716CBA4178AD6F09B9785E770F3E436EF115B0EF9DEAA53096F0EBB56
6BFD43302C8635F37CB19EAAE42B117C811783557BCE1F09E954BDF1934DA059
0479CED9570AFA64CD9E218B4D4FB811E4B8E604EE6396E85325839A367EFF7F
D1FABCA1A3E52BAC56C07608914AAF91E1A24915AD0F837A68B94C300EFE039B
6BA234764C585F0740F79A581DED774FF0328E7044B519A45EF85AB1782B7ED3
EAC90C3DC75E3036C216F8493942FBC64648D0F09C3DB2DFBBDA8E25EE2FB405
C0114F585885FD384C58263955DD4C83E0DD6EA51C1DF6E9C7CB8204CD45E6E8
53BC4F3DAD48B128BE3A3D628D184FF3430A238AC0714CF48E4D7CF75223D70B
00B6D90E69ADDB8FC45174AEF74BE4BB16AB710C5C6E128D131AD8789C1902D0
7548AEF7DBA607CEC8299532EB0C6CF0EAD41508ADB2B8A46686D2DA2C20D3E0
9AD988272ECC69E5778C8C07C8A70FFA3C1E68B9182A6BF12E93CE23C114FD19
EB1F61025F19529FD77514B68D3729F251BDEDC7F1B02E0F1CA9F8F45A16199E
01981F743FCBB5973D3593442B68EFDEEC3488316C4AAEDFA887BAB8F5F7FC8B
2D8A7D0A54F0A6AF0781263D3799752A64695932D7FEC777833C0C8D23A14883
B36DF01073FCB31F6F477964AD6910B7FDA9410A0D8F22A42C929C8F791C6717
FA9D5BFD835A7D638DEB9266ED219A243FA7E5F50E00D8CA546F917DA8503CD2
BCBF49FCADE7E105DB904E2B02F2EA144EF4DB6EF6FDC4D95804A03E86F03FD2
8C5479372B87939D4913BE7FE5C7881275333790118EE2AB4C9CB18F142069D9
587FDC6654557F13737AA07C08575F75CF1EEFB9D3B67A1867EC9CAB74305F09
756BE4746123CD9DFA8D4AF2C4CD2C83CADC9815AF1C89F4065D1C64FB22138F
394EB939A3BEF8A53025B2E4F8927306D488A791DA0167755037DAFAE357DD61
F6F3BFF4E53C36FA24AF47C89BE3E1EA4430DDC3C9ADC15C31CC9B4CC5366E0D
43C8B8FDE3198FCE523DA4E59466C7B6BDFEA4D63648EA0E2042C4AEB47A516C
BE365F4D8EA1C8D778E20F10E5EEDBFB8F224A57CA675FFD1A972DC094231EE2
EA4C9A6EA15E77A8550D086E9DEEC9BE18D9A90A6C91CA97ED43FBA55747FFB1
7A30B155E34DA5D1EFC311AD49CCB73F21BA3C55025007E3ACF39BA2042833AC
899D3516A88D16BE88A8D80C48E9C76CC4CED771682BD2CF2068AFE3F930DBA3
6A3B48BCF0C75552A8E969A1D5F22FAF4270B9101A49D560C57CDD6331E4817F
0B0005F8BD44ED1724B02D55655F365C70C6A36F35D2A5BAEE4E2A3B8030FAFC
5C566AEB24AA63E9348BBBCC82377D91DA7F6F46D4EA399673894DB5B2FCD333
5FA087D49F485A20B4D7D15E64F2EB1B50E822FB0DAF7711D3A5157E2D7FBB25
5A80C66D9F394F2DA442ECBE41B2EA509D79EBAF7AA88DEFF8EAC7B6820DEB0E
F16507CA711927B5E4F566CB0F00FBD8CF815263EE632A35F93828F6C1DC6C8B
F6FCDAFB2AB3B2016EBC9D5336A1775631D0733534425D21CEF2F65D69D9B710
FB4C8730755FBF7BD08F9F0CDA32345F8D70E2DC5423AE32AE04B5F709DE0CD7
31EA5819A2AC1E991CBF377B48DC93AA70214B5994BE4977A6EF4AB7D41657AB
94A7FDEC034AF0D50A389D99CFD749A9F3CEA622DD74F5DA695C22CB1CC242AD
7B68C7429FD8AC6370798BB583486C99552779139580B6CAE5E739D1B1C596AB
16CFFA0B3F24C0CDFE324250CC299B1E32EEF6977843E2475562C86E923EAB72
2D8BB8C4C61A7425505A9CAC11BD981BB278F9AE6C26AAC8D5C30A57AB8EBD46
CE6122F2EACA04A37156B1D5F1D2B4C22FADFAD6590E8503D1E420F8DF2448C6
B2CE78071B61D8F5F897E74F038847FC18A62F8428B89B6E46FAA3C6F1F286DA
CB59639A51FE47B6C05A34488859ACEFEF8A7CA21E72EF529297B71570AEA2CD
2CA339BD0D52081B7439116073FBEBC92E46033953C62D39ED4B5B05992F17F2
8C3183905BE5DA5B63B9B6FD73986C51AD4839603421C155304F467476C68065
6DC2E20F4DE79D1A76E3267D7D0653D69C427CE8455469EBEBE9E422636B5CED
064E5F191E28CB20012F5DA5CF2BB4ECA6438F6E72668DF1067A93548487B55E
69240CA4BA1195A79C2DAA232B743F9F9B6F83ABC2E9DF63C7B7074C71BF6AC8
19AC438CC8D3E02790A1965B3A46530AA26C7D48FF8104B2316F68D41782625B
CBB64F2E0CB5AD43518E729442003134148713E77F32FF276BB079640DDE82BF
FB6720E63D786C33DA44E3B02464C7B53775A33A5F0DA5262020D4BE6C2C0362
30F8F7C807791A3E9E8EAA32A960AE49702DB25FCDA89DA63B736CBA72213638
A37912E7034A625E6F8391C5B4FD5C31BF37535D2436FD3ED8B1EBB678A71241
76B992CE9DAE338635A827633B07E45B62B50DB6D743A44E873BC0BADCD8C44C
2391890975A29713E413D3A8B5EA6D9E8934CDF21E8DF1841C878F0CE07C6401
38A0F87DB7EAA3946165FD77ABD98FBC1AE0B6E7F512D630D4324A80FF4DC6E0
682E1565C947A8CC4E85F299648999BB88AA4C3286DB10C1E68C154DE6C5694A
E71DE106CD720D3AA3B7AF80507915BA63C2958CAE1025367C25353CFA07773B
B6865C6212EE76B2AE687CF91B8CB7B3FCC1CD8E1F963B1922DB33162F0816ED
EB2E41116FE2D3524B9AC260AEB7DF61BF7BD5FD79215EEB80BEF549C0E0DFAA
2EEAB20D2B675EB6A1DF6E838CC363478EF623792C455ECA7BA1E5E1912BA2A2
46B40E2E2D24CFE1F3D2F060300E933C3B9F47CD3C7F8BFF6F25FFD88831F7EB
C3B6B9725FA55AFC39D78D835A605491096293C0EEB49CA07C2B5076A39C4E14
C18BE24BA28DD86D17C2525315AC2220ACE469FA58FAE2BBE6DB98D20AB1DCF7
13A6354A9D19DA7BF60B3EB1E63D331373C50A21AC4C3E47E9CF2ED180D6BAB5
8102359AE312381C25C643F165CF2890FA59D12A513AAE8558A54AE9FC48114D
122280E1EC1FDE92739ED912263A86D40F903E8CD9B7BDADBA31FB4E9C61DA78
22B2DAD6C6135ABA9EF8B0AA186CCB99283BD97864E7A49E63061364C3328F7D
2EBF3FD6418A73168B934FC122CF5020784816C796D797A58242E8AFAB87420A
603DF3F1AF528E25C2813504911E65D3FA017445A17F6526C03C65542DC96133
268C0E74EFA8F7ABB2C5F051C95C82EF8A72CD0713B79278759A18F0768DB524
28396BDC13257E1511DE6E1631D580DFE6028CE1FFE894652455AD8C3E3225BA
CA440A63B6D485062015247F5FF1D5D384B23C419AE66037A5C58AF8CEEA6EA3
9E32F5DBC126F31A73A400A4BA01195F583BE6F9A700F5900FB35B18426000C9
7D3FFD8A4F0AF079A44F6EB2E3E73A817587B367B3F28E3FF84E949EF2CA95A0
19E70A5AF2CC26E6C2BAC78826CA36859FA2646B849AF059B58543393C02ECAC
C738DD9067E756932BF2142F015303C862C5D6503482D9D97CDECBC49FC99688
C718F8D05BE3286F843E09C495EA7DD3B2853D7BEA97995015C6C8A7C5CC82E7
D14540ADAE2BFDF5CD620F1658ECCB862B47F2D93C75D647C0FBF3A39AC28556
E0F58865EFC6C3DA0D8673D9986608E29005DE1B87D0EB86A0E06EE43A9796B4
7DD10E1ABD49A32F4D551610081DF23A07BB27845F8C169F7301AB3D194F55B3
567292635729ED70060329E116544CD36B0DEB68D8107B1DA605C923B16E7262
C4D140DFFC3FE85FFC68B840919891B7C901313866DC6B49DFD23115072223F0
9492C8D29D3FBE5578CED292265108D4FCF0DD7CAE77CBEC380393A66A9974EA
A634B85A0B3626F8DA86BEB6BDE21EC04E02C0C70057A8055A2058E3C850AE83
50C2DD8962ADEE202FFBF6DEC8F5894499D91B92824B2CEE8DFC6335B2E65E6D
37F99C3B5ABE41A772CEA1780DD6068AC048D63907A81FE873CAF0F2ED29B3AA
6B56B3CAB6FB9B4B503E0D62ED3818CB5073890CE52B3E498E77417D1C3205C6
0C4ACF056D0D609B2A8E48DC4430EF1845126ED00A861A708ABAA2F4BAA218A1
D3A9EB7B3BFCF16684B715566BC7366BB001C1D83DDDFB9EFF47C399F6BC2DE4
472881F75C53DF7479CAA7F2CC7FB8F333C9D64CBBE4298FEDA3A5DCBA40808C
97E8E9985B48F53C6B260361365BC8F16BB2CC17E033E00DF486CB9E274C58B8
CB81F13D80664B653C4D6C0991ABC4CE2A6983095E6CB4C538E1966AF6DBB763
4FF9073F4A95B9AD591536E8AFA723C2F218ECB9E7394EFA24359CB4D6D18FDE
E4432B9C11FF046974D704B6A470A9D49AF453FA3073B86464C1D4B691BA9136
8BC1DD1CC4278D3B4CFEE3AE097DCA49EA850BF55D294184CCBAEA897B67ABD7
F1EA10E545CC0D100E6EED66CAE21B85F7CA38680B9D51D14DE02C74F2BD728D
8349CAFFB4AD92F08F758078F2E0BD6982B46880578308C3DE06F4DB3DC74CD9
E70BF9CD22A469886BF7AD381FAF26116046FB9CAC3A24E4D581DDF1D3B09784
4FF5BD07E8784661CE271840421C2B4E7BFE0BFB010C7DC9E0F1F437C39D4C52
A5946305D6A8412D63BA3E7777EC7A7347017C6051697746F49A8B7537755D73
91F3A20EBFA54A4AB757C318D56EED07556FF4319F47BDC6990CB7C68A1CCE69
8A14399DD9B27FFDC5C9B90489A472CCDE85EBEC906130394D42DF993AD6FFB9
0C8D3D98377848FA832D7ED5F435577B35A65327E41C6712C41C73503EE95074
4272B3E7A7EF9D0092A4839B320D6251CAA967F4AF09DD6A778AD1D5597DA111
FA62905D31014BBE3468820B2C718299DF21F574C151A66D0ACB00BACB174276
F7E2B7D6A2F534F98212C2661556A55149DD815D70211447F2A751D8891AFC9F
567A3DF9E87E8244F75FD1FEACC7310A1BE243FACE4BDE7583FB0B0444BD84CD
F525BE1A6BA2E8D428B437742FE9655579C7D6280CFC426A39CF91BBF40BB051
3C32B262F48224CF1312F93FA197ACF59EA9C30A56E63D6F8C17862FEA1689D0
20F203299545ED1D0D2DDC7323A4AF35EF1AB8E6C0AD272659DB7339606AEA10
8FFE65A94AB33065F4F626AF70D4D11054119BB6F280879E9A2B3AEBD431DF40
F0503C11171779B8B41C301188A5091F3CA0F9FBB11FACA268DB4886B21FFD08
852C98F8A35C3E375D1FE13F9E371D15277853802422F3D3077C7FDF1D95A292
F6B8A09F97B03A1999089DB5D3B485A21E4E595332E6A183C068D5DED7B953ED
4F7F0BEDC330B2401B2CEFC1104DB5F05CEBA39F0E5C53BCA7B717AD07DAD99D
35283256766F55C342A5D9908C36F8214955FA8414CE1243D8BB10C1E8A2C389
A62BBB96449E3328198E9E136C0E1EDCFDA0E73145A261DAA106C8043C57897E
B0996B0F51BC7D009D61B617C08C3FC69485941F554362FAA00AB9C73D9D1A1C
98682DAACE2358EF0E276B49818B16998BAE97D2CB17C55B8457F7FCCC828354
05222CCB538A218C958AA46A384FFD275B6568BB9738EAD586FFDF14A8191000
EC15156AAFF725566538F3472D590D50F2FEDF5EAC7A2C8F6D64DB769670A9B6
6346F4520BA56BF85F071B313268A4F0DABA4DF9477D6785657423777A591F49
B9A4E550D077127513E13CA2810A61F7E22EF86BE481B59C15229746335EEC2C
E95B65C46C5D833D05BFEC8D8D78F4FD7E26C37E19D7879B07BC0ABEB8F0B3C1
5A79B0824A88B9B945540E4EC825BFC57A9A80802DB781DA9759885BB3D9E982
92AFC34B2477D3AD5888BDE7E77CE3552B728ADDEFF7FFE784067915BA86D0CC
23EA6CF6134C53AD00C4347A1A8E289FEC6C215157508CE09970A04F996147BE
6DD348A759A03E9F7EF1FB7D1A9E0216252320F5B010137A18B563712B1D3A85
EB6C829ABBFF2C6DFB5DE29F9E9BF67CD397A180B80E0DA5B60E76084DE68C76
59D13D4100494EF206F8BE2E7B2B910048C917B62EE4DD022796321B5271FBD8
918742D48F0312E06AEDD658631D8CC680DA6C88AA805E550ACE94809C4ED184
4B679F628CF232FC6D128587E3DBAA945C0B5616D14A9476BF6924A6605A071B
A954FC2FFF7333D3037050DA0223A4BE46D6E58258C3267A1B97B447AE50C4D1
48D593627BEFDB4FB72668AB891AA06F78137319D7AA93E6F307F620728CF297
07B004DD3360CC35291D156F967A4B71C7863D03858969F08587B566ECAF9179
51E561B9A06921E355DBFD8519E7D3A4E2E75233FCABB6D307D735DC646ECD36
D862A55E831DF13E65274CCFA3B231F58BBA0552DEE71ED3834C46C7CE4CA992
A30FAE9EBC059F92DFBCE8F8600B9F5007008B01CFC9D36CF1948FB5E41E336D
66D0D73CE11D7B4A388B72C64972CF3E58C5F62FC26C79FFA1104A22CAA0E224
2EADA4158BB21204B3BFEF50F6A5BB33DDB70E10D1ABF11E423E6EA07E7CAC50
FAE8082B9C710271D4F13080B1745888763431E713347137B9B5DAB42CBA3695
17DB661E01CE804C1B63F93F999AB66074A31E67C4F2C4714E47086D7B27DC25
66E4204D01856554A1096C3CB7397F9F07405D5264E6E260418A06EEA8C76B61
AEA192EB7183DE4C3A2BAF1E4B8EF7EA7B329E3BFC81B4EBF9F53E184752D780
0A0F6F22569AF2873F354C9EC358436969107C07FAB663A576C7D849C399BFE7
4B765D5F1CFCA16E080F55310E1107ADFA988976B82797314BADA866E4162D59
44700DC39F45D57191896FB2148D6405018657F4BACB24ECE660807CBCC78C37
EDDAC42226A3A59A1BA440DAB71BA0249AF04B90404D261EFF42AFAE166BBB60
73F6C95CB62408DBA3FDCC3C59B4713FBC62C36F68DF406D73C7275667A72924
6E0C36191B5FCB5B5BD5A8AA4E9CCDD87255E2D1F3D8204A650881C2E9262FFF
DAFFD4480C36C0632055C7F998222B04DE96EE2A41C992E7C33913EBA6211F8A
5F8DB269BF310126E087F3D8EA88113B23184AAC42049046F45E85CE972F5155
4DE6C0FCA70E0B98CB509B30CDD697F07F3F069422E1DCD2065485776656890E
823AEC57703A91929C09F125239F294AFD9AD944BE6B173F0C09918D75D01534
881D471A6F6A416E7DD1E531B25EAA104AF0B66B93ADF7B2082F64D9CE357B46
A89D981F8C1257C018A0BE0C2B200CA08C28C4FE60E4F1942C261D03C28B8B8C
04EB4FA8E6DC08CB14C1A3ECE35CA905A6548B90A8E50D0EF6D1E48787DDF4CE
CC399E44795C56115FC5A2A21FE81025F6FB49B3F0F3294007F0E24714DB99ED
3C2A6A5380C293C289AD1191A3C1718D5C3FD4702F236EC5663EDE1A7541F3FF
3C530C8316CED85B0DCB4A49681AF10000ED5D855F39E2D5565DA6AF8659980F
5DB98D5020267240AF22D14D9726C7675B03FE89BA30B997A16C8D5BEDCF2619
67CEC7297AFEC9ABBF8F2347C7F9DA5026CADE88BE4B5A63F484BD1DA53160E8
ADAF135750DB355C4566B26D61E2D7D8AE8F68023A51379C3AB13020F66C85B9
97AB2F6DD41A53448050B6C9F53C24F453FD83FE8A7B0C132F71C6E93BF90DE0
0CA0D3068662CDE8743416F93CFC2857
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 40 /parenleft put
dup 41 /parenright put
dup 45 /hyphen put
dup 65 /A put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11
05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17
DF5200D68189C918C2D1E2BCE076599AF2AE945C35C8F442DBFAD21892B5A756
B1B5447FC44BDB516C6C2DA3C7BD5593A7DEB7BFB32B71F78D0A99E9BDB58BBB
27B4E189F93BFE5F98476CF276D6C72089E75CF8281A9EDC43DB22A2E1C11402
CDB1D75D90BE00A7C4BDAC69B136BD53DC921F1419BF36A9CBBBDF351E3D756E
E3977689EB91D20E9A9EC4C8E0E072F72ECB42B64BB10D9BAA63EBA58F4D586F
57DA03E70605C6404B9FB7BA1EB23749B262E24BBE4682EBF731BD0D89CFCEE3
750B6349A156C60FABA18A37F36472DC8A02B6AC32FE82C4838234F2B46B01A7
958A1633FBC0DE71875ACEE664F6606C0F34419AE933CE9B85B5D0016393A8FC
F0BC932EB507471AEBE849C76AEA7BAC9843BD5C2322E8D96BA5585BC7E9FF61
9B9846A683BA5B97206D4C1C73BD49F8F1EEFE05588231F395F88E1A5761BADA
14693C33CD6B3FF2E6F6FF1DE87CDC415E8B7BB33C495A3AF647341809F2E268
0154EFB31BBA9A2A974A574744B7FD48CF164F72A22A0E6B1C7FBAA421ACB64F
F67905D3D16C32625A68029EA20D653A374AEEF52D1667D2122C5CD636E6C5C6
DB40C35A63DF982B219C1B10B4F4CF3EEA3B60527D02F00698007CCDDAF5615D
275010BBD50571E3FDE210A302171F9F935623D54BDB9D9A38A4D5FF2D564A0C
ED10EB6AD2AC16B36352AD685728C5DE87C7BC5AC6E488141803BF7BF302CFBB
25C71B7825CC6F9D1D6336274D00A83F9AD5BCEE5D94812BAA3E07C287966CD3
5B0C058EC29E6B8D75B7ADB3331640E7F757FB694D1B1549C15C95F01E02A22C
F02B0BB6CAD7482A5CDF9E9F072316CDCC218859CB5A8EA0D248B5F9AA441F32
1C66E67860C7C5A3F1DDCAD05E8E373C34C01E9A97C83CC52D7968C22DA42AD8
ECE2018DF24898FB5D20E86428E3126E0829DC572AA50217EA3BEBABC6100C3A
367FB52D8380A65DD20D5DBBB33DB794B42315FD81B07CAD3532187BAFBAB1ED
494193730C6045B4FE2F371D4FA86527ABF40FC6C90983B8992EBA959962C0F6
1D3DEB26ED3E3B1530E11D6D79A883654FDAEE71ED2BC4B40CA4DFC450F14394
DC31746D36B020382B3E9A8E960F38B819A9042F3506E132D7ED1472A675018B
543419CA473EB8454979E99BBAEA6CBE7EBA318F73FCD1195358D178E8702AA2
4B3FFD9E0E3B81C105FF3CE97BAFD2F0BF55F79824A2B720C03049E006830EF1
9885CED9B00BA5F0614A80398A45E841BEC9D9FFD3D1EF056944C681FC6A22DC
F9608CC470DE9F4094CB03D463006EF8EC5B5584B2C270CB0CE93DDA872B3492
709217D40AAEC45147BF19BA6B950C008D1C69D486A404DFC81C37BCBF4D81E3
975E264F3B32FDFD5F785F7FBD87466780AEB84152E7A165B4A3925BF6BCF387
59211D357C445E4A192B186ACB49C2B62C9E2DB8601DBF79EB4DC2F33BEC9704
26D8A1E00BE2F6EDFB386B359E318E7B3B7F371AC11086CF60B2B4BCE59C76CF
A5D370CB782F08DCEB0AE220D3E5318915F45B8E9DCBD01C3A9B17B839DF0E78
3188D8E17A9185B4E71196B61137D1A06770F85F56062687E7C50D5BB9AF4949
1A8EA29FB433D3E22E34E39FAAE885D068543CBB7B9F07003FCA329FFC3D1F95
517906C695CE55E6A640C4A0E841EADA56F98274AC76627DC69ECB62493A9A4E
1001D98BE66D394AC0B1CB7E28F4FD226C32F538168EC973A707298A3A5499BB
B4BD2F81A84143B41A622D11B2E90238AD6A9B0A239974FC2D17BB6D39E775D1
8F1532AD521089E55C4FBEA57E8DF06EBCE0AFD8033D0EB83BA6180ACFEDF9B7
24AEB2E509C7EF4A24C02408CF3FAAE065049E5E83C93D0371A82F65023070C2
222EB393F068D346011032E328B3A8B48B4A0F01629746836AE9FD9EBEBDEF81
A8900D8F1332A64005298EAA55ACD461992971DA1DF9E9BADAD200E934F6C117
A0C64E34C9380C4375EA71ABED1A0088DD029C17BBECF72D8CDB162A73155FF9
30DF6CF616A9405A27726EA3980D34301F8206BB88D9E06BB347E218946C6EF8
E9FE8E628982B61A3BD8AD3931010CD1D6406E9393FAA6CABEAA406909BFD5C1
1DBA907274830B305CA53EC65986A5C6652500F4F2C16089672E62D1C2D35F10
48E359BD662B0215F1743F9B71F3E7C5BC13C4BD253465A266AF71D92E7B435F
7ED0AFDBB2A760A43F0043FAFEEF0955D92C345F5482CA5C1CA525173C3964DC
C10F2171CFC1CD7F68D2D3D0ABB8798D1457FA4624625C1B68BC771A6B6B719B
325573DC5FE5307699013D43236DC133EB69F0B7F20EDC89B105B87B476A3D28
8CD6B5C8E47E443F69ECA722387043D0C45C7F0844AD3F305C8BCCA3393948D4
40FBC7094DB8573E0F6BF3ECB9B3A843052FDFD8AD202C48F61C9481694D266E
293DB3408C184C89AFCB022768576BC51C53DE374F3AFAEBC24E6D3EA3C1C534
4D9FC263F625C97248C85181F48A479DAEE9DA753BB24B53159395970666C1E9
7BA2E3A203005F151742932D75990B367567A3A3FF4B91C0B80D0913A79C3394
8B13E56EFCCE7F82F9D51205D49B9A9C036910A99FD63F96E27A6D12EB5865DF
19DEBE8AB2108D9126E238E437E76D800DC9D7FBACBFD70075D695F7804952E9
1A045D4BB3AF9BABFCF7A609063DD472218768A7D3B10E9EE6206BD43021AC7C
DA008A795007941B67F9F9F141A6E06CE0980C095C37CDE82F3D13ECE527F7F1
79A66F5F3EBB477FD4459F0C61F3246D487D30F51482B83749EE37D7ECB25DD1
2A07C4C135A46ABA249E5227607468C1B578F00BE260BDC14154B655BA4ECA2B
D86DD6E68422F46E2CBB7F238E108FBC1A35226211A29F8E708BC32BA66CE057
62068414621C235A1338EB64F80D7003C0FF365A2DB96EA280A405351A6CDD14
532A71292A2D2C2070494F27F1BD8D611705D8FB4F022228BA27D956908AEE19
F5A1AEA102413472E692434E124D00AA03075F1A1459B5A3C76BF2D44647EE47
EAE271566F0B4711F50DB57F571DA44E813D68CF08445F7A47944DBEC1F590D0
210D090E9F59BA4DCFE9E46BDEED90946C68F7761AC3529A296E768B2207B847
C665262B83D29B1998CA2B0A17FA04CD66D312C0D0252E173C00A8B6C6C0F45E
45720F96C81F6FF5E2D3D44733CB812D1B501CEAC5EFC514A071A97DE2EBF236
E6AC69883856EB47C2DAB3B6940F18CF629D1BD74EA916252F637B75E1DD8A63
B7ED375C3A5A3C5AB20FB602E85A2F264C7CC4D6798D50742EB4632DCA2392BB
5A086A2A6DEBCE34DE4B437257A99692902E8B19D36B71539BAD8C3C06429921
707C5AC19376971DE33C0A53778D67AD94BE945BDA13C466A5CED4F0E8F7554A
CDAE3B9489FCED1AA2DC439DD71D0552450AC2201E35D94CE26BB17B14A2FC1F
EC22EC30A15206B8C57F8D737C48D199612F5FAC1767276C9F307E896A1B3430
F2CF537099B25B40B81C8948067951AF07459F8B363A4B01E05D5A2FE70E5A1E
A3C1F9F244C9BCD8299E8E888D1CEEF1A68504353610FC17079A02947551C0B1
CAAB77D90AD01656DCF28AD42A9B887FFCDF0DAF933E0C3970BAB9BD3FA6649E
46CE035641969030B2E9986C7839ACF674EF63148E6024BF8B05E65CC1466349
F96729E5EFCAE70DEFF2F062269EEBDF90661EF884AD7C22E4C38046CC59F0D0
5FCC6F00A76DEE7CD33E6F7C5CB8D83ED956E18D07B87ACC0556BE3A5B11D587
4BC40E461A885B9A5F19C1608C900CC67C8BF2066317F536B67C8F36CCD5B51E
31D79F35610BC7ED2F291A4621F007D8890B5C0E8503DF89B3AF032B79432E81
7D11ADEE3B159A4C2FACD839737C3A00AD005630DC2ADCC11AFD94D347C76F8E
E3515D0D713711CCD1690F26DBFC8AE891A25596605D8BFCCBFBC92BE9283C83
9346BBEFE47F8AE8262BABF5983F000E135C1D509A33C99D9114233E9C8CB9E6
A8C94C86F2804431EA762A7EBC226A06BA51C5811505AD1DB2E8ACE8E47C3DBC
14A385FA575ED2AA4523DE7DE3E446073DFC3647A67557A6B542962F3D65C91E
2E0E29574E37BDFE85C367E2C7528E74BE387B0E86E647C49D35D55D28399FBC
18B378DF4AFA24DD40E352CB021986C43488E73BE4E1AE3DE986DCF47E983673
4E9FA6B831119BD185B0073DE42C80531972EA825148A87F7D586F1AC603785F
29F456DA0727034D616F7775919447B58BB6469552A6ACCFA7A5CEF1C939E5B4
2699FF2F2DDA7F2C5964630A18B44FC4876DEB4E93B2C564F9CE4E133031D95E
C6923B2826EBA06EFB748761F550FECF3D2B5D807EC097A5385C499AB4B7B24B
F11B2B648CCA30997E09645B948A4D5E01354D4B797EBD15FF410F5EDA7D8A60
0CF9342E2543B9B55FA4481FE12A76D9321CBA7E218A8E989DB4847CAF68A435
0FA0E531DDADC37346353CCF1075205C1C3B59E5246D6956A158C60365778F01
B8E3C300CE26A58C408676EF3874AE306AA28AE29C5426029BF28793C2DB8FDB
91EE14E00E9B04CA6D98E531CC1BB3267A0E12FA1861E22F45DD52ED2B3F28EE
FC147D1BEED521FF94D600A3FAD5ED6048BEEAB37905FF2E1B68D55C80DE7314
C8194CBEC65D1317BE4CEFE8F4101CA01645C57F6B8A3DDDE037C706BDB3FCC0
4C64528665271C55E6FE36A6E62A4D20C407797699D18E9EAACB59CDFA61B16C
A2E1600C5F8F980DAE306733657A578F98DF1547E90218A956E6D6A735BE933B
75C440884D0DFE1347F8BB77385A18250EE7CBFE9D34FC5571287BD01FE83F6B
7B05F50A9FE4FFD8EC089C96A6528538412A16568F3C34542812C00A5DA4BD42
57FA8957DA4F6E93CDB155BA37C121C98FE2EF8F71C31827C435DACB902F159F
325873B97F3E35917F6ABCE0E5DC84A61677410F7997EF03868648E0A50362A7
CB85F8B96A217B0AC485EA109929C77BB4F991AD9C463B853F109100C6384EBA
655A27DD5305EC39DFDA070B1DC3A7DB8B226319D5E6296FEC682261F0739ECA
AED9DB632E1C8982282AA85A71DF5159316AD5BE3D6586E5CAB767CC4D2289C9
3231334F77645DFF600FB0DD039DA8B28D947E21FCDB0CBD0840A8941D2D6F0F
2ED67F9D5F34EBAE1F0AA682548DEA6B7F3B5FD067D98D96937A1195A87F1D6D
EE3365EF156D91EF0216E5FF6C219FDE5D49E11045A5E1BDDA1445F3B246B5F4
9FBAF8C80CA38263A9FD2B46EE5D41C7B9D6D388A9F5DEDFD20F477C5AB0FD2D
CA8FE4A9F5B4DE4D5A3D9378F3CF71D9034EC6B9C7FFA61FC6C11F4BB080F028
28405AF515D8E12BDC925B1CF710B57808DD48BE2E2D132A27C753DF94EA282A
DB08FE709B0CC50AEE4250DD18576CA7F2A18057CCFCC952136E3CD22581F312
DB397E02E366477540A1AC8EF49C460704010F12A3BE03D44D5CAB40EEC81194
74CF0CB7101CB02A06F77266E2FFD79538AFCF330FA05B9179CA4B87B7C64D86
16CBB3DB1FF34DC1F9959081BF977A3BEE8DBFE2794041CBF08CA79CC0AE0FA1
7BA6C7E545DC9BD02C646C87AE2850419BBCE66C38AF52653B8496C09D67C479
6F3B5E98058BDAC624A0850882104858A577E77E0DD9E5FFC4B600ADFCA62781
0A3F9495CEC74941B6A72D8DE61BB885E85AB3E987E9884E524D82FC0544A3D3
9D89E4BCDB22765AF30843FDD9A8E07310397B67D68622D8015C501A8C7A04E1
DFA6BD349CFD6A2E894160362CFEE578C2C5824D4A6454FF3CBC4D27B99BB83F
87FDAC2157B3E825BEDE731129C78E18C7BC54301F72AF0908FE37E055818C99
BA9C697C5D5B372E8D32E6690D13ABD0ECC8D9A07DAE958EEEFD98B20900A294
C02157CC6A29E6207BDCB1DE43F595308759B45F31BD74C1C83EEA82F14A4163
B915280E3E8E727705204472A1DFED0F4CD0513068CFCE60F57FD93777251909
AC36CB4B9312812E8D15A3D013E7BFED8B4EF6D5A2B3B40D5D2001DAD5DAB43A
4E4A313D289CC73DB38F39875C727078E9FA63F8C1F32ADC4287D310DC4F8A7C
50EC9238D371DAF312355178DE6B2F81F2CA3BE0916C411FF904BAAF9EC25014
D22EE6AFC81A331A9FF87A7AF989D83BACD85559D7D9C3BE85C3533865841D61
BE6D273578005FA76FB2F0F81EBEBC3A416DC659B43AB558FAA215032326E07E
7E34C3466DAC1FE1A7B505C7FF83D226113602E561F91965CDAC7B9B4085AFDB
99C956AF189C4581BF0FF4FE9BEF51C96342905E98CE56CAF7B237EE9B3C6D71
C1211CC99F5569ED346E5A2488F9B2AD8CC962736E28083DC1F9D79CC81D685E
6A956F4D4A66BC8B75FE61A4E18A18A6E838D5A0C8A322A792AFD97BC47C9E2B
AF6CEF460C3B18B27B7482E27D838B34807FBBB727E05845E9C75921626CABE4
F5A148B2F0877808AF3C975EE1D6E7BB361903AB55F63E94BF0F8C278D48C4AC
C1A5543E4F05DB3EA58EBD720E85D83883B77D2EDE01524D3C68D891DCB43F50
9C45FC6AFC8EC0964092EEC6A9BB31ED124B193915AE8BD2FE772B55A65508D1
3AC9FF93A27FB21F8234F6C71BC62217839475352D558E416C18FDBED9377714
58C21B0ED6F20B0DE5BDA79662C0EFD1E0BB02DC0CD6DD0231DA1EEC9DC8DEEE
EB9C53C2B795647F2AFCEECD5B741D66C3773E1BBC02F71C69E8042515E7F676
B479868E5E81C860B785E7E0EB8DA44F4934109C75DAF7A27CDAB5444604CFD0
251CE87429C755331D67E4291E0B65D2A085C07B41E7BCA56DE54E5D399C5DD4
56C1395603FAAC4F79FB37CB098EE8E1080BCDFEFB0DA32FA5F0762D51786140
1CF1E744267A374CA00CA2C7EDD04B76A233DE4A9E10CEA1655A12A5F64120F0
D4B2E7FC8529639C204A29621C435AEEB5F0B1694B5D2DA7278E048A69E8E7CA
BB037E5257640FD50DB8773A58B4DE5A22C7EC795D137FF3DD931666513F11CE
095AF81EC0836CD45D6D531F93D7A809715C3688C637EB45A7F23838F0EC7874
53D295B277F1AA4FFE87FC5DC49E249EFD15C8A723EDADCB56EAFB6008A14E2F
5A4B07D9D466320586560A0FD2A8A2B6003080D11BA3AA142F4F0C9EED608A07
69F848116BF243B638D33DB995549A2967125F4D24B72F63561059DA6865F655
AD3F6F02A56ADA90F9FD7093F60B038213B01F61AD94896043C587D76B68914D
3D1B8249B65790A59462711298AA4F247B618D42BFE516CD12DF429B7CBC1CDC
5803D2E9FBFC35776F4FBD12BAE81C53156DE20EE522AED8213FAFA1674C434A
40901DF9526EB99A199CA14CAD07E12B7CEF08AF202345FB46787BF90CC24BDA
1A943B7E50915FB4B38749ED72EACC5E0F5E52C08D37B9A6C3F2EE394D615B2D
FE8BA894F45393E5F24DEDD9ADC07CD639352B8A6064913DDB7C2F759EBB336D
C02D45B6279DE061A82353FCC85D6C629871A46B241156EAAD8CC00EF6262324
658D835857DA24E413114D6BD5551853BFE276FDA04CCE988E806BC2D00FDDA3
A5E6DC834A82159C4A80951DBAB2F63FEBD198783C420413C8682B247D229064
AB060B0D34122C040A90A19C1E1B2851D13B9C329A10079CED7A5C28E1B102B6
98CAD9C984E54FBE6D7A536B15C13592403C637FCAB7DA300591433BB9D066DB
6E9A917FA41500ECB8750ACCAB76326D3378176C946535902575625E38066042
073B8829FCE8B318B69CEE9816A4A0B5669F9E2571426AF12E2FFC6DE0EA8167
78E62EDF6E4480477BC4E2CA0E09B2F00AE5802777599EDA4B0706DBF28DDB1A
5B2F96134AA5B8B6575656DA28ED44743C7B0E0941CE853D90D269C6E55C64E4
561D938930F915A09F05D6C677700A79CB46EFA20B575707923FB636E2D675C2
9076ECE9C5A8D20F4CA06138BAA24ADA78A31AFEDAC6F759FB294C2C9D71AFF1
20883350443665C389D9F2C5DE0F94AC9CD287BDB4F227D9B8E027D445F5CBFC
2FB00AE5359C4019E6587F9B0B48AAEA7BB8908E0B2F12E2A991A6978299EF25
DDFFEEB5CA9C805A9006F812E2F0EB69AED562447C04669A5097F9AED24997F2
9389CF377512E57CCF31E9910ADF6CF4681C7DB206A242A711592DD9168BAF4D
0ACC5D01AABC18C0551FDE4A112F330FE3FC7A89267D8CA8D9A90BC9C15A915D
6AAEC2247ADB65D5D8B7857A16D9E3B8D99848B12B442A41A3D8AC5F3169E824
544517887B68EB0E9438242DCA63918641410B031AC8CF68A61CC55F023AE771
981D2F8A9E5A102378677B82779538BC0D42124FF633800478D3C8DE06217F14
DB10A4FF3605079FD23AFCC929B65A7B5095783133207999750D46B69295D48D
5B61892832B7958AFC3AC95B95C3BDF0AD7DF1E3A37D5F873C35CD55EA6441C1
2D855B474D512CB3261B4E2C9FA123707B380E8EB1F4E8720DAFDF21F0AB63AD
41A8A528489CF163E7EF9353179CA9930B508AA5D3F9F9FEF9DEEA24D76BB548
18C16C9192C6BA94C90CE4D464B9E8EF2B4FF58CBE4E3EB3BEAEE6C673A9444F
CCBF89CF479EC0A5B1D31AEF0F1E11EBB531903244B105B602A39EBCFD45BB70
D783410B3F8E3C834935AC5427812CB0CB9C055189212A93E888196257562DD5
880CC0A84231FCF6EFD81D8D700A0789DFBAE1F8633E02501F7EC8949EC7A5B1
FC28AB7C62F2BB5E1B883181C100E40126E9F0E7FBC2357CB8F52CCEBC9D060B
464267F908F841D715C0CDC03333C2F5E9D970F8DB2040C1908F48D931FB6857
2743074761E2E92EB9EA405828BBAB7FCFB9077E20C662E69260021564362691
3AB5941D2119B02721FCA8FB7165792BBFED43428F56D6879F78A7C0884A1B0E
697F8F9C0DD839F63042DC0C96CC4B4160C502357E44E04D029764E0160216CA
A8B27FE1ED7ABA253B8E8A3C1A1428030A053173AE84124209443E4730EB10DC
EBD3E0B3129D697357341A7DAD4A3B8C9EB2C394B03D39F4D3DFE177D5D5F16E
7870B54D42B1876D2BAEDAFB51E0CA300A2E18AE5DF59067D430A66BD2448BF4
53DC1EB56968213797688F364B9A14B07D31023E44B5B967BA2052E1BF985275
8FE7BC9B126D5CA0FF214E63DA0FFE11B0135B430AF70101C811B53EC7D988E3
C9E7A48E9ACAB433D0241B4035E40EA8DD7E4E0B99167323EB199A6FB4CF3F5A
34629F8BFDCFA86A894762EDB414A90F747DD80B50B3D23D7F4B635BD30F58B8
6C7C84483D357410EFAE46FB12C0FACAAA4284D24A7459B9ADA448C6BD82F3C8
2796884DBAB02E08D1F152256B77BA533C9F23478E9A89C45DBDD9D753BA1519
021069C49EA5BD2D4FE24279AFA4ED09B3DDCDED8A79C1E666786623EE0F52C0
15F0426619934BA2579B4688EF5BDE80A589820609006D5749FB018840214B7A
75E423547085EED16462873761108776398D27B6EA1E68D02F50D7BFD1831F34
9A914EA2E5DE41851F17568F88B1DCBE9235A1DFDBFB3202DD6C2BB186486D0C
FAEAD0F3FBDE22DD3FC2AF45DA96B25D652AF4DBE35AB0B3A9474484BEB0D0F8
2D293A7A04920B2A3E7256BC79F7F00B712AA315FCED9EDD4C537275F93B5FF3
69BDA57D6ABCC4C242F2A03A7F447B6B1CAFA7A20D10B15EF899F2D93CFA8A70
8007495BA04CDC76D3A3021B91588E951D5758A537D6AB5AA6EFBD45A68852F1
681299412FC3620D663DA190583E4C9787E9E4F63B9D8524A91AE7918C1E7C89
80F6D20CE684B35F25F046D18BA528A97D2DB29197DC8AEE355BD2D1BD486594
789FF840344AA63F8F1E70F8EE82A5BB548DF0FB7FBE30F932D44634CBE72C1A
6C1AD29273020440C32143875BB553F73FAA1D43DB5902F04FA7CB4964FA84C7
07815F79EE989FAF28C217E2CC17CD58CF7963712D21D0AD454E8D234C90DB4F
BD9F136575F140F8F23D45D8088CEAB133BAEEE0317C899F273154591228AE0B
1D95E7E9B7D56C419D4DDF25CB1EAEA08E67237099C9BCD8E3A73A2AFDC8229C
52D82D6E7AC882235F9D18A3F6A06D3EC6ACE1C4AF13A72B91E52A80B4FC6719
166C6E14ADFE81913A485CD4DC00C1439EC9EF86FAF419256E88C6FD8E76C62F
95AFC62C5C2F4AA535D3CF83F981EC1E4964A6415A71B639EDF21A759A5D0054
E6E1CF9429D4DD38A6622A59258430427F1DA1D81BB1E910A31A31355CCEC3AD
F1CC3A72E714C4B70617775AEE78275C3B9E5B106562C6E39905D0B5463A1261
238DF2DE918826DB62C96FD0CF980D527A9A36E924C5BF9B2E8AC9C451E56E53
8E93A697056D37B3A91FC5E3CA48F85450C330AAE8168CFDD2CEEDC65273D72E
6F5A77A9A42805F2B78097405D4A1F4410F230F06EDEA0C5D2B59141C7885A68
768889F1C6902E923068B1BA92D6843E54A0273FA2EB2A73911EC6A87CE22A5B
26028DFB4AAC7FD866DA0AB2F0A54FEBDD0D7A762827F914BED020D0FCFA5412
4AD84E0BBF9D8C66A7BEBF382DC2BDB460ACB3303C2D5D7ACB708C07695E9315
872CBAC4054250FECA78EB9EF2DF627124FED1DAC510C9004C7CED9A810C6F0F
AA345F5B17900B30DEF759D57C1F48BF8E0B335A51E6B9DE7CD2F3CD86C202F5
AB281436EC5BB77155E05F22F5A0F7404727DDA06A7C0D547F2DC52EBB5AED5B
4728BDEDCE4D4D0D20AC211FBAD73FF3813F6AE69DD470D56A3495E1B423E09E
C810E9CA76E46A3E050E4092E86A9FEC9E99924D76306BCA9E2DA37730C5B1B5
4AA8FB3D82C68A8B6D9408D55978BEDA63DE413166162BB7E1D6480CBF3EBA61
6A2A1E484473D1395E7EEA5ECC7BECF6A1A58887A665A123560CACE56AB71B93
00F079C36A9A3B987842459BEE1BE0905769C29D999601DECEB9F88605524360
A2A8640703DA07EA3A7D31CE00C0DF1E27C9368AC750C37A32551B8E1C297A96
DA6A29062C10290717F10A6AF827E36A2C2B573D179DCC2F492D55DF47B84AB8
119857BE9C470080C9005449809D33CA21C9ECDF0C3DC333FE9ABA665490A97A
C72982868DB12FA59CCE66E16811176779BDF8F3C738125A676343A9DA372F27
8440DADB955343D61F64A3EBE0F95A25C072735AC21169E4ADA95E1D05E8B8C5
29B954FBC10FF2378744B052B89697F8915656972D693D90AEEA06076CC4963C
3922DB9AB70B65271D6FEC529F40828D2722C3BF487FA95FC8CE5B1BE07E4B00
9280FFC944F6FFB891166320E93D52271A5925468557FCADCB01CB2C91E71E02
F15803EE4E9263924A6B099A441314CA680516F57D4BAD873F1AEF8047619AD8
34F6743C88FEBF1EE359771CAC6B7CD4F77EBFB01BECC387E5A80FCC950CA8F3
731B1FCD3CD831BE4DE0039F8485358434BE3E22FADBFE77E79C13F6404A6529
BCCA30924B175BF9FDA65F20B178712BC6C6BF091DE6139957E31FC06DC6670E
A8161388A79C0B4E9A3E949B5A4F728DA5BB6B1EA9328DF821EE0257CA2CE56E
78D859CC296BF8FE9671F552FD509921851375A947378F52B474BEA69581BFEC
253D1C0C5123339D25078D27FF2CD027571C18E71D0438CF671035C2F67D9BAF
49070E7F57539A01084A03FE6366B0D1E41911C5BDA2D741E5515EB3CB86CB2E
728C13902A297156F935860ADE4EE36332104AECF1B6C69DCE99F0F2F58D2262
228F65DE17E5FABD2E64A18693E0D5C897EAEB7A53FD26B0A6E538FE33E5A91E
486EFA7A9B14C586B82F0FFB2AFF03B122ABCCEBB706DCAB7ACDCFF27188FE0E
F2F2F96E98902A4E5B59B1080532117455EC0C4D82800523A3DB619847824D36
B329EB5CCE9D77EC34B02652785AC1680C7ED825BDE662ADD591A3F025691074
FE86BCCF60C7CE8C616E8DFE4A3124967F19D0D48E628731C1396371DF23780E
BCE426866BDEC4140782B16668683792B5C40A31E8192647CB04BF6910DF0861
90474370230895CE8BD4CE47CA8A27DA5D3158BF9262D8FB7E7953E6AB629EEC
75FC0C867F7BC688CB8452A7477CE54207E0BFE632147B5A382F26F14880A8B4
24520CFD5945D327CB3A7FA64D42AF3E94FA5DA2268FFE03363CA6DB272FB583
E61D2E9221EEC10CD1EF22CE9AC8D3A4EC18FA3A9BC3FC810F7A1CEF23A79F21
3050FBAE7880D201F62EFA81697B41F1D90E73ECFCCB2FFFBDD461895B7FDD5D
C368127E21FB26A11FC945576A60E21C5DA54124BA9F62B0ECC3839C6D7CFD32
A4029865A4787A54C1C54ADAFA2C0A9934A3BC74169FFC00B55566D13D527C75
041FC5CC5E153804EC34B8D25021C6004FA5179F8ED3F5AF449FCB9478AA8CF4
A0A6FBCB0A65B2346BF4A98CA98B6336C078
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 13 /circlecopyrt put
dup 15 /bullet put
dup 21 /greaterequal put
dup 50 /element put
dup 102 /braceleft put
dup 103 /braceright put
dup 104 /angbracketleft put
dup 105 /angbracketright put
dup 110 /backslash put
dup 120 /section put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57034F7455AB67138A1B6DFCA01660EDA
B807644585327748972D0777653DA33B9541D33F9FE54E8B3A35082C60DA1A3E
15F533E79EE12C590034335CD58D6340DD2046C83D61406355B2C363FAF72A5F
114D8B1CFC7237A687B4929CE40EF5B671A912A783EEE11DD508A8418C1CA00B
666F4A3B17E6B88B2CA051D40C7CC1103DBC3054AC4480DF2425C538712E0206
2C34D6DF581241951D84B8F4658097012E5038AA1ED01070FFD4B87CDBF4070B
6AF02B02A168C15036FE19FEB0472F1792034F9DA02D5656F82A238052EDC5E3
36C1C318426091E99B60071B305A1958CE61C6376D615816C4E7719837DCFF5A
1E8736005FCE7F3D4E680C23A822430440B27DCB932B47DFE3F24F00713076C3
0931795A4DDEA46C4FE25F9B00CF7E2F1C7ABBCC7090A148025CE8590C3C2F33
8B513F5557C155C8DD0246721C93FA36A0BF3370942C79A39349E020BE324F05
665A4B922A8893402393C5C9BB329CA4E32386DEB0226998AAEE15D1BD8D2591
6D554E4285FECC8F8B2FEDBA0495189B2A9871AB83ADCF0B80E6DE22A0243F8E
D1261FE7AF86FB7827A3B73F8B86F18E0124F3B302BA509D1880ADCDAB2937DE
60D16CF52EFC6CCEF2D6B3EE4A02A804D0869A2174F2C870C7F6B4BAE76ED058
545C6D1032CD824B243EFEDBCF584CEFF81958B05CF2138083946F98DA7FCFDC
273BAA08DBE11FB03E69B6F39FC5B788AE6F1C891935DA051E43D5B92975896C
3B6ED8702952F258805F650CD8CFACB90247F2F09A84C7099157430A8078A95D
9C0F42C9637B41F10C514CC47DB77C088E2FD699E9C2422971FDA9EBC9E4B285
C8653048399964FFA2A6A8B1C3168DB06C58671D3531668FBECC8666963C6A94
E0844A230E5AA3EFCA95021630A3FF5F15B801276D117FF01A0FCD45F32671F1
3DA5C4C0D820DADC466034B001C6D1068F72CCB148BC23758F601642997A43D3
D17D66C455D73E4EA90A9558B1C1B4C61A730C29A9D69B694F8B2A788961D131
9C86F157D1F6CEDA33E0C144E94392B9913CB065B3CAAF5BEC5B152A71089B62
BB548B8A43AD26D41FB6F207F6CB556432E33CE6A2BF02E7C58F2091CE156E9E
F16018D6EA38D4F3E5DFD31875AB9E71C0E32708C17991514FA92D22052F62CB
32BF7D4EE01B47236616E47EF5F2F56F6D8E9F15520488FE1410FBA6A8F82F64
25E4FCCC211D94B44DA8157E4582D0086A6D13EB355ED602CFD528F338EF5267
EEE5A85AD4D75F4C942230223360C867BB472D5815C2F2CD8A1C160F42E544B6
AE8F8925F491C11E7BE6C09B192C9C68419077D9300E54B2DDAB554F035085B2
9F28D14C4983FA4E0C01B8B8C86D5CA01EFF181EE4D36C4A2471D14EA08EF631
735D58190C5B84CC69EEB3B1A9C19E51AA7B05890E1795407B6EF85B7B4466FF
D80A4C5854AD52BEC5DD2CAA8D86F15D14CB5B93DCB7B79895DD74CA47E26536
9DE54CE3F778C8AF49B103FA387F8CA89C69A01F7DEC5A60FB8A9D8AF8460EF1
D24AEF18E4D1DD0053431AB463E293CB92FFD3BF7762A0198959638A813121CA
583ECA297E81D4585923C29611BBE970989513052AAB17D21CBC362EE5CF0AC7
EF15275B13CF886D3C5D7DACA2D5B7B81552D9D90AC80D982DF961D97D8DD964
C4FA59ED40434D3767DBF043540F92AF15BD771B49CAAC1F63E089BF375E11F2
E21FF0AD67DFB2E14A803B30FCF398BC54B8FA4091C3A26EC97857C29A0F4444
B13BA72E4CBA738C75E87099FACB443D69B85A17128C794F7D1DFF29F9E10FA7
7E035F4B411261712B173752458302320D8607F83B1C8EA93979907A9F10CFB6
DE365B477B5EA16B5CE20122EE108DC8FBA8D4214AA9CA2F4046EEAAA20A807B
5EB9628F794D6B35F72FDE95AA19B04F1DC3D3149702EB027181FB8B3146B395
A7599497EA816ED52F92F42C099C3B2A74E67698C9A7D0ED46EF259F5330A6A2
B0F8AF7239DE8B7405BD649606DE993EBB59E6575658E49C5CDC3EA5F2D77C23
FAF0ABDB9765FA79A078E3969571CAC1DFEB4909ED5A2E6D5A7B7587E44129E9
FCE6815DDC09166535236B3C5E9959A6FB65030EF4608F09469FB49E4E881DCE
74094EC99EB2BABBEC7DD68802BD25681069D2D871050B786FE1823BC93FC73F
52498CFBAF79C3F448F4423C6C472D1475B4F964D334512AE1DD542C5A95F5A4
2EC4B6DB44B4B28FDF0DF01987A6057C7618D88B89D53E9869
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSL10
%!PS-AdobeFont-1.1: CMSL10 1.0
%%CreationDate: 1991 Aug 20 16:40:20
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSL10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
end readonly def
/FontName /CMSL10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 76 /L put
dup 78 /N put
dup 80 /P put
dup 84 /T put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 116 /t put
dup 117 /u put
readonly def
/FontBBox{-62 -250 1123 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
7B6DF50EE617C00966B9A2828882804DB7477F4A8CF5345B7F3568B4F72BCE73
2E2AA5BC4B4C70E21F3AD9AFC3B8605A00D67EF9ED1F4D13DDAA920D45B43CE0
0941BF17CF05D2B777C11D4D844AB20C0693D1DDF00B27D9E1AA2D98A4A06CC6
D342AD8F644F4787B66CA7D861E7CE13FCDA85C1B0C9F94009768EA89838EBA2
7818F40858D967E1DEB67E7FB4E93AEF487BAD46B703C662080E7BA5DEBC78BA
3EBEA950D84A7802DC3AD500C778A64CF752A5DA86C07D0C42ED9FA98FE04FAC
162C10509EE4B09C62F1DEC395CB2BFEA76B17DF9284AA779115715DC97B88AD
5FF55CBC2BF1F318995B6534CF7CB50CF8F3C5B90E36A5B1EE383411DE78A516
B32344B54E0B3160F25C33A06F3DE862785EC9490EFC297F4834C77E2491C23D
9D321E98F3E80C81E8B658502D0F05FE6B37B3877E20E1E52FC5FE38CF8B39C4
D0A83D8DAED42067A0BF1F160B615B3117EA04CA89BE31E777F6B4D1D6F4C103
82EA49A9D084AC0F7F95D0741D9870DA3CD3BD3DBBDE39DB8E3521E73A36DBA3
6F01DCCF92C300096DCC1158E9856705E01FD26E4EE24D0E12C079F653587535
76093033C0587AAA4F80CF8B81F903408AC5CB070B5E417CE35E2C6443C23C82
8E6634E248EA2E2DD28EE93E7D4FFC34CF490A95D6184C7BF86B566777292176
F9CB67D875320671526C3A8A43CCE6473217C1830D384D3FCCFDCA6DFEBDB81B
FA54871C070130703519AEF3F26980B0912CA02A01C89C552BB250CBE836AB23
0DEA3AB6D637429F653F666AD67AAB2C7CCA62AEF0874D44871ECF4F4ABF5D92
853740BBFB500982D7AB0C6EB5C4D9F60E1FD1510FF78A70F227591DC4B8904E
37624D1261E2254FB77407C4196D154BD011E35548D8AD3F883771209A23E7DC
D0453788E4238984B3677A50634AA7BE08B0AE959A9E0DE788BB2A8D7E08074F
0D1F4430A12F7B2C839170A54042E3D056426B47D03A8890C671B058F3BC0F97
E0FA7F8BA1B3FCB92390738766C6822EDAF3740BFE917247324A6B70B212739E
3362BB9E977D3ABBE322F03768B2D083A1E074A1D93490717C062EDEC1E721F4
D37D28CA440F20B0B1B121C214DD12C96922D1D512758D025EC830945326C629
0F0F25BC563FE61C4F62A446C244BD4F4810FD17BEE532771BCBA0FE3554540A
CE7E3882969A0F6167C589564C2F53D53234F40C3668325697071A5155B5D5C0
6C3E1A94318C57D80502A8B9233A092D394577F77042297EC4C2D075BD5D56C9
ABB70D8DD0B41A6BE0C5C13C35B2ECF8E0B37232613193D5A277062087CE83AD
8A77DC0D428F32F3E9CFB6F44769F6781D016D9AAB0344425D14214E5926037D
57D644736D699DA384530BB4649D1A9D6D8F777C0057151E17626DD50D55855F
D1C74E1B49A0E20AB217D989F6B14E0AFFB9EBFDFD47640FE6DB9DE0C2CDCC88
CD573E8E88D54B9A798C916C37FC4299B3FCC58FF895772190A7A7928E24ACEC
A92A4F84B4E5C6BF1F82FD58341B326841769B97591FCB069CB43A9320243114
BC5F02DFB4426C4E35985094AD27487677382F979EE9E6B2C5B883E853E80ED4
F297BBA1519194BBD0AE8492311653C4D77FBA7D2852EB0CE6644953FE971927
89B6746EC1BF9CE429DAAB945E37FAC37CAF80E2BA2A74E63BF4D5522857D509
E7849DBF81DA67A7A99C648E462BA0428924CB0A3475C1CD73F974C32F711A6B
7B31B3A9F684C366B911B7B31318FC9428BC196F107D78A9F4C6B54C7A9AE576
BDDBD42A7E9042AE0A5F9D53FB013F387882E472445D6C63E524363708FF0EC0
0BC675A8105FCC4A4C22DB8A0504BB06074481E439831BDE229614C755772E4F
B964DD0D1782664F3566C8BA1FCE7F560833EE2295C3E2B22F615E533EFF6687
58D26B7038D4AFC61424769B481D44C65CED42E613021982C51043EF5C3B1C30
BA7316AFD03CE3AF044E65498D12B8A02676E11ED75D064EC239D01171516F74
B3E456489A3D79F04C4A090CB292726353381F1BED63974623469166003DBCA5
5D961C7E078DB8CBC5A0A145F37430A5E18020268EA7C69AA265E439EE5E7268
5E3EE4E26D30A1D3795E9C1838382DEBB6C99A927A658D4898958B0BB56932B0
1414E2D881996F1D09D3B9C0CF6AAA986A0C6ACBF9C2BBF1B935354EBEE725CA
4CDF8607B478A8895A6D59377E53F275ED21BA51739A0AE2A2FBAA1D09774C94
6104DA81456D1D9A0D47C61AA9664281B50FB75156F910D2321855E5B601F463
0EAC9EC7A412EDDEDA36C5C3B6073AC4669726339B1955B54D30C5B6B1677389
B4B39E3B4AE3CDE931CDC344F4509FFBA56722DD968AB40DDA07526DDD5483FA
B11BB84C0FF4C62E0A18B08E3D05D9300DD25B54D3CDE963A6800CA13A4D806E
ABA4EE14BB2B8FE14B2BD50535E0AA628D905515030CC586A1847B2630C2D7B2
52C6FD6E1DF0C9E83EDFA15EC6062FAA349BAEB210769DE7637AF3BE77E51F46
B741FF8205229CE204699C6A160D1FAB20526B49BBE5F9EBAB5B42C52609A279
E88BCD4F2B00B66ED980DFAAA0ED4706F6CC6B2B43DE50250DCB5EED92213D36
30F39373A157661654E88BEEDFD11F7D44EF1572E0974B93B6AB2C91D3B34A6D
615FD65EF3F6C81ED23EDFF99DBFB7EBCA6DB4D0A6E1F8276CCFA3CF93F1CEC9
DEE76A350D7A96EAACA7BE4D04EC3A5D8D337120BAEA7B5FE8A149C9178B9BBD
AEF1FF43EA3B001A99CC0E6927D8FC2579A11C86C707FFA974EB8C90E8A272A5
3C2DDEEE71A720062AD2E07745289C4D714B8E2780DA84C9ABC7C29D443AD86F
9024349721629483CC914874E7CE6E971575259B3828C651F4CCDB751AC5EC1C
6FDD56AF12518B7FB39A87652D3AF08A4506417284627EB614558DDFD0370C62
D6E36215C67FC27F92C23CCBB48AB9CBCB298512E594951AB06B148F1FD5F4EE
001BF8929D43FA768D597BA1D5FC973D2E86114FCE00EC2F2E6A52EEE883E87C
05ABB37803834666036DBA96A2708ED1356E44801B9A42B463F238972A8280E7
F3445C31C9F300B25C82ACB61FD4CD5C84E1D024A38925489DFD6452656751CA
B5BF119F730FF2AE3510CE6DC7A1FA1A0371743496EFE3247C0ED67B86729792
ED20228378B19A7E401E1547EF631F08E68A6922F3FB785DD2A31B8054AF5AE7
90BB14D892980AA13841D0D72DF4BCBC3CC3A4563CEE2AE9FD74DE605F976A09
DCFAA7C84F1FD4E81918407F26CC8802545D258A9A8B6891D90E6EDE4A7AB044
94717D8726CF2C916682780B424FBB1984C86BC2EA5B4663BDCA26F4759B5EDD
9A51E0DD0A930DC1212885E9ED585E7876548A29135F264171C41D936E4A4B2D
1DC148B10A8EA82FBF019B77A729B5AE689418E00E85044760EE59508D0CF595
979DB48827ED2AC4A079535C4BB2436653160AC71F1E2961BC5C16182FF839EA
42D930577F6401ED0E0C28E4C39A1F1FDE99F6BE58984DA92B8E95748E785C7B
8223A49C7AD526B7CE57B0AC3F7419451CFD48E859A8B720F26AB6B0EE47CDB8
CCF263979C52709D4A7579AFE990295B3940F9E00E3AAAA66BF920DCD6DB032E
A0252D577024B2934AD29D4B5AFC9AD619C612DE5B4BBA952B6AB304CA1BC1D2
38E5077599374D9CA4C2FD9008878A691CF9E160C9F718071A886A75E41A05C5
5EB5BDA8CA43F74E122157ACA0A464889203DC7829CA09076566077AF2D0BD67
AE5A0DABD0F86127330D60163DEE39EE0347A54FA882B0257CCE6ED9BEFF8B16
4F387322717236B8840A9EA02E5FCF7B5093A244EE603FA8BC0F70B4F149BB12
C987308A7D4066303BA0CB8D75E9E0FF266F5BE9505FA16C4E60867F137AFAE0
1BA7943F5CBD9A86E8E8E56AF1927AD726670F61C78FAC93EDD6A31B1B0139CB
ABEE4680D254484B26113A84F7A21967DCDDFDBF1D13461FED303677EE1BE921
ABD65D682A67261BD1996C646B2B0FDAFBEF8BC7278A0CD1308F3D5A2A07D6A1
80C6BDE0D7009E6FE4BC3EF49710130EA398BB3626A9DB8363EDC0F031630FD2
3203963798ADC4AE26D6CFC0171BCA0EC062525F5895F75DBD12F9461F3DD87E
593C0A1A2EE964E09F65926E675F9185085C124C7BA7082322F665F0531A4C76
99860CE54DFD71ABFCD673DA5854746E39B52D88D9149392356F031324E403CE
15F53A86E2B0BCD2FF342C8BE2233401DE50BF641FE8F6398CA316316C223758
B33A092787B18E8340F49A7E3DB5D1DB8EC14533E087C270281EC0A61C03CDFE
27B5BFE61AEE97F41FF27D07542B5B45AABC23335C4B25000B53E82458E016F6
58D17127A9F4CBA21C5923A04083ED16431AC96115F14F5805596A06D9B734B8
5117109FF7E71DF202433C3C32BCE0C1ED9789B0C791F5A1F5953D1F48912191
925EE50DB267D50F3B74D343AF6A1A8F31B1B3E53F7053BAE9E96FC9ADE0A6A7
2A962D1389D804F327DD0B2672A421FADEB7C1CD595E5400F6D9786CFC2B0EFB
6A43532184C13BC0F793456A5B749652621531E5976DBA5BE091A3D96BA18D0F
277086B0D773556F6DF40271C8038B3CEE459794AB12FE3A6037C850C9C4F1CD
1618B53F7A4976BF426288C7D2A41180EB090C9421E8BED372E8EE3FC4D4C5AC
E2590766FBF42B79ABAEE8AA572820C4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 32 /suppress put
dup 34 /quotedblright put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 94 /circumflex put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
dup 124 /emdash put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A
45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625
0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF
F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078
3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E
E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9
3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64
293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5
9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139
6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639
3FB39C1F05FF8F31D2DEF37BB9B883334F51EA124581B786A3D5FE6424B19872
AE7CB657C8D9528934B990B94FA4A6D61BC9D2CA9B4E95A22CBAA066043F44D1
AF32F545B9E123536914A7FD7FE96F12039EC25128C810BFF546AABC609DF57F
E19D511F324E32956177C4376D191C691B9F0B21FA84BAF3DCBBA536CD710A80
1DCD4C83C02E69A140E1A4CFFA3B012398F21DDD96ED8060DB98EE133F430022
41BA1DA473F1C99F0D6CDBD35188DAF712AC83E0EDE08EFC3CA2B4A21EE55692
CF22799274A5CFAE84C89C937AEECF9CC71A328015B63C1730FA68A18871E174
D035568A73346EBE4EBCAE410A4F2505370A0ECB487FB40FD823065AC56CE66A
9D8440C5B3F74B855EDAECE69835137D4D76FC0FEBA53998F57EEF25C7E3D9A9
21BFDBD66C84D8AF7D8A3B79FAA9DA2963FD47689E519FBB2B7793CE6DE04A5C
203539BF94A5A700E65B5A5DD37B051EA4348BDC4CA39909ABDF8C4102A58FD6
661206115F7EF6C29E12408BADB83AD40071F53B501C15601338467BED90B659
2708D01CD77E109ABA63C19FE12606511639C5D9D5522C80692D1CA874E17B9C
753AEEF13718DD36A008B2D39D618F4F766174423AE972CB619634766A5DA025
F9682D9E2A3C752D0F6F18B0D58319FCA606BD6DBC4F83D19DCAC84A6165B460
AC1A0057B12E2023F175E6A51FC12A4852043F6F2F2625ECFF6E866293531437
1C060C9383278C81B8DF68BEED88C49F86B7617C5B938457D19FA336C616D2AB
0A430B489EAE7998EAB74FC8C037550E12EF9AC540FD37473DB1A44B1747A4C7
4687624D806FAC32A53BD65A333DA3732ADA2774D6621BB59BDAECA5637F1F41
CD2AAEA8DB9774C2730DBDE3A2F9499C719A0E9D59FF37C4F4E6E54D5EC402C8
6599488AE21DD119CA2BF54EDB306B26351D0CC4C82040835580087C60327110
9F8A1277DDBBD25823AD30F0E960604BFF9CE454C5C841119F73535F3093FBD6
8E47B1357BA56E3D906EC70D68E85465479539187B56EC67A64DE38FC444950E
A82B014254689B676BD02A3068ED7ED5D4C9CA1839ACD730A1796A62727DB74D
F13E9432044956D254FCDAEBCB394B557E526A76D7CF66DCE72CA6E9961AD97B
5E08CB4DE10C3F93188202864CF17322BBCA7018DE57810B85C38285BC05D66B
29A4026617E88B9D9F803ADB2A86C80AADAED3137F1A3B75521ACAD1E87B26B2
861045257670DA2A0861951B46AF170476663F73DB3290336C5C770812059B68
82C33E138DA0528AE9F5191ECF2EC709573B9C21A00E59455FFDC933C3C2C334
73478758AA0E444E90B9B020431A62D3EB724A754D66136E25BE6ADD9306B0B1
5B63048A57EED909FD17CE62092B56EEAF6D61DF0657E1294C700317931A6556
3954516F3D4AC1ADF94A94740B8BC6831E15E7CE8813D981E6DEBF543BDFE1B5
EE3FCB42D1772228D059F3518AE48D3DD1093DC0F69B291BE016A51E2B99D900
34B1C661F5D5E203EDC0F5BE9564D7CD4250FCAA7C58BF186011C242D9C4B8B7
D796A3C6E7D59BF73F3BE5A96A5A71196D7292ACC71B936061B31A9DB505B106
71DEFE09972BF319444134346A3453C21C9283D4F36413FA366A2A21E272A93D
F11981A77886B44FAF14281CA4E6CBA9BB318A80D9A2716AF6AF5699FF308078
FD19A2A19AA020C4505C48C9B1979DCFF5EEA5AD70450A746BB313D613E5A0FA
197D4F48C04A080EA015BCECD9F5A73C27A405856BCCD52D13DC68CDD7E21C65
B718627EA2DA6794E1726CE43E66FF6240476F2DCCD720A42279B17A29079082
B47A29D6F8AFA85AEF3CEE851AFC1ED7AC887739DAE40E9FC488F6926C9D501A
E96A2EEEBB8670A5F43ACE15BF6DAF9C9F49044A8FD2D158FCE783857BB3ECB8
71094AB69A6FF5BE116016C578A0DE2DD73E77139BA5E9C217D88BAA2DE96868
F55D078389CFDDAFE8CBB12557F5EC8ACB894397C63A28FBB7BA00FF380593B0
198785B600918CECA123FCCF445E76AED79637B606A7A155305F6BFE1C45816B
EF256E69FA1303564250FA266A93B3934274652937FF4761E212481EC05E2750
DA071F1351098E88068A1DF63B8ECEA323BB4AE6C6E33F41D94336B7DE230664
A3A01A4AC34FCEF5E665DC6D48E546EB5F8443126B15EC2682BD7D16BC18A99C
D006DDD3DA0323032E314A7E1BC6FA5EB804F5DBCE918914021BED0F50FC3EFD
08B975A08054FEB279404D9F0C5134AF4A906FB3B4AEF45C655A9459B7EE6896
90D371517947CA902A4C70806FEC414D00D00A815C85AD9A38726D89F8C5AD5E
4F9898FFF50C36DA9D659B4CFECDFB789B54C363E042D32642AA4279C4BBD738
79C858D872560F67BE3C311BFB0D25A265A83A76DA3532F70EF8F6FEA32F6CAC
2131CD1596B9BCBEDCE054B2B48C50DE89498EE1A8DF090C50996FEAE12D6C05
1A19A0381E6647F9643D9ECA8B00D6275FCD2107C46877F527F44BA46A78AA3B
9DB03AA34FC090BD4EB583D7EF8CC283248C9061FFAABE98F7697D2750A3BD73
774D8DFD3B1987D57E29012ACD08C323942A2EC80A8F6C43E456AC15D1D42A37
8CABCDE7D0283B0A4BB5EB9CBFDEC32B4A5012B4BA55CCB5F5A4AE7105E7060B
DE40256FF2B77F94B5BBC504AE92DD0BE002FF26E785A8490E79539E52A5F088
133DC662863A6EF17B16F35E330EA9C24F86633B36BC246369A07D75EFA05A5F
827551DB63345EEE67B4550CF1467AB110E23DB9FE39894030900C72F7D6947A
7E6B9680327A449CDC6CF37CBEEE583273BD33B9A6ECDA3D01A686E54613319D
8A4EEE2A7C055719E5D897720154ED928B2DD54BF536AEBF57D60142D3A9E01E
2CEC3DD8B3A1F16C184E512AFCEF46A4DCCE19D0743962A2F9A72D6E48434CB0
5842C377BE022784F5DC725CBAEEC2162327B399B71110048A01BA28ACD6D55F
216B4C2FF2FC22A4E0DDB98726073C7E63D32186B1F752CB6CBCB11EF3061CB1
9B2AE09F4BDDCAEB89C115DC6DA6CAD6EEEB53C506D7B3D5B3CC7DF0A30F91F3
069AAEA40F0CAB7FD94A90ABAC39AC5F7C6CA268E5F67E0770EB383E071BD561
8467B90370538CE6258E8CFEBFD6157283FF7698D5E2D3BCAE7D25591084ACB6
7453549B253D8FE4ADDFFA3DB88F429C2CB5E85CC06BB592CACAB29C719F7D46
6F37C12D583E75A3F334CEAA57EC31053F9F930F33BFB71FF5123DA935B6D160
B02D643EC7947AC3A7D5EB2C678A3D1C84DE48B7CD396842DBD6EE13C0FEB7A9
A422A200818F677EC1FC041C552419B146078C54F43F94584E04A6F67B0AB6F8
6438F0447D34F1C4337958DE1F0EE73C8145BD58F0EC5C27CE32073037900478
DA239424BC6AAB4429782E8260E485612E18A4A107FF7F5C8F5C559F97F909B6
7F3FB63DF02C8CBAD76D22A80D2485AA32B22D946E5CDB9B6126EF8DBD8C774B
83291DC5FE8EF40C57920DECF53E2ADBC05A7F87D5639AF806F3456D46437E2E
FE6DDEF93C1B14899B05F07E359F712CEB7F04ABD6167A873FF1FB7EB6ACE1F8
5FBEF004BA33AF31F876BEE06F360454E2C939A706547BEBED320C1153C55AD5
DAB2428803827DC30F800368FFC7486E08F013D90D83341013D84C32F4BBD213
4FC1682636F83D1247F696D4D0565BE0DA11336F9F2DD67F08C2745F2FBF49E0
FBC5D9EF40CEDBA97E74A976FD0C091554AB7000ED2B3391ABBE70BE2C7CC7E2
00E17BC6D52B606115D31A5FC6CF202C88FD9D42B1EC8CE7C37144C9A3DF05CA
40F900132E273683E7023443F7453618D59D1563D2388FBEB6B636F0398A83AC
D8BCE97FDE2ABAD88BEEC1A563489C70929056518AC8E42DDCEF6ED4DB39F25C
DC5C2E0B4C08B5AD6AE37F5C7CFEACD778388990A30A40F0388CF1DDFBBF5B97
E21B07F4F5908DB019A5ECE965F228DAA7805FB9CBFB51B323F156B187106513
1C61D9FC8C8A59BDAEF871825A51E0366EB764F4E29CB9F6A5218682566163CD
C5781A694101721068F6C3881D27FE63EACA3D61DA558502A9F764EBC89B6046
1F7FF5F6463D88708CF9BB49DD6E842E5637E079B7E1A60B7BF7D964ED5B05CB
80DAA3FD509903B5686FF1906FF040EF3E6A5F4266B1EBE23C0EBB4A45E8F213
A9C149C3D3CBC9BA9D2A6B05E1B04BA60FCCAA970FE76B4D0996600181AFAA00
43D8EF4683CED54D954867891E95BBFAE7741A04B97D1C69AA2548A82102F7D1
901A7CB52B52CF4C3E17B4A218C658D3ED3F9CC1E5ACC6421BC35880751E3EFC
47D3111BA8E4F4EE25D4666E0EFEB69AC86386BD18BEB7B254EC428A57F5D8FA
1F7F763B595E63282E84C22359BA8AF8EFBAE967A749BF9F9880D27D4F43A353
D739326DF2A2B9C653E968E6A2C5DB51B5D4B0B5EE6DACE6D627EFEC37A437D7
8197E4F1B093BEBAA566FFACA18BD81CE2388515B0FE642517DE2F743C99B87C
49A6CECC2597F1404CCB0C35509078E9A96F6096D1910AC39F13F4EC3F436454
9415B0173E1128640E445548EA8B634865CDCB41BB366E7D8711FC97B11B24C6
658CA46A66AD3B9928B6CD841DE4142AC68BFEFFAE454E7EC1E8313961AED626
CC2308AE520AC0AC82CBF32481FA687DB10541FAE530C1C9BD17EF6FD07C7D59
433EF74AF23617BDA66ED94D23E578FA2F5664D8CD6228CC2D440A7E97A4FAE7
AB074B18FF86757640AEE770F7678C4095B56042FC4060B9B5C8816EC3D22612
6D33008BD99AC70B909AFD1CF04253CBC66ABB063A8F3468107F1DA79ED51CA8
BFEF2E8612A6C89F1E3DC22FEFA111F8D176A03F639BBA20747604D4946A608E
C5FEE79D6AFB5DE6DC82F093A3CD71DB8F8EE2E3AE1EF91C89546E9312829CCF
1EBB12C491FF711E2F4D6338CC5309FE8904B01E60DF652B5F574A4D43A6D6A1
0B8DF80F735191C415683C281E408485545DEF3B0AB7D8933EBB75188E321149
B92CB3BE2B6A19D7B123197FC04DF63E6990D2426FE3B37AABF8B5E63CC95815
A5BBC0EE2BB64556800A9ED7573D1574D59BD5F18CCB3060486A7F55DDE0A1AD
235F3F90FDF83445284F24BB6AEDF38218B847EE93C7D74C12CDF1B4B4FA924A
45DC34EBE8AE0D26A0D213607ABD05703660B97CB7E7ED91B86F68077E684E25
A13DA8116ED9FA4E8D109075F2E5CC4A6B94D5B1831FF12FA94FF4086839021D
55530804B75107A9879176D3B2140448CA878A84A6CE7A3F97A22A6DB64DEB4E
E93BA437BB9B6FAA2AA44963F955B618DA8DFC5B416084590E54E9E61A85935F
BD7D1410923C17249A0CE625F463441E9C37FC8A1937983F522D941E5A13AADA
D79B30DF3909715B07DCBF5973FC4252783D2547B81952CA0C7EA8A8A6843C2C
D9073F1BE696F82E6DA7ED7F6DC55C6A0DA7526788FAB8B9AE3A5A5678C174FD
263D35E0758D033BFE79DD7C28E9F842B49FDC5F4F621F6FBE79824C3642C5E3
ED3137D7D8A1712B90902104A496AE1BD65733E9F92045020481D9EC7BC46B6E
A4D0EA1F02C05BBE73BF4F7CB493878476F3396B0A066460420076B952C8BEE8
AEE7FA5A9E4395CB9632C93A1379E16D6091336AE049849ABCC27D25473AAA88
DE787910C4EC1AE474B1A196F9AE8D3A2006377116A85FF194A53163DA8F1FFD
9F9F3D2AC9C90AF5DE8299F4D3E35DA5C89DE61A938FF912E6557D9D0647E87E
7B0D69F716B37C818049652E43D223D5C94FD06A30D7356CB53665FA4C2E867A
A77AFD5A593081BC76A6B576BA033FCAC54E8A2D6DBB19E6833E026638111604
C0A2D51D59F95E02B8B173690ED0A2F7184CC60E84CBF2BA1C9B223EF10FD221
FE2647C4DE4D44A68683AF2149AD61D67AF889E91E84ED53FF2DF339AC3A3FE8
15AA07CC2693021FE42E2EC3C6ED0F30CA08F9F0762028FE135EEE55C1D5E4E7
FDC40F28425C14DDC00FCF37DB72DF6F09E16D5CC85A9178FB91BE0D40EBF89D
59B269B55173281921E335737071FD8F7BBE044EC1BB551EB3E95F68FE741C3A
2092B2246871A7517210AEF19E3D9719543D115A544BC4B6592BF8DDAE758357
6EFFC83707BD8CFA53098E98EA56B63CFBBFE3FB934594B180E9333564922DD1
D3E3DE9FF6A81E31B858E3C7E060A70F2E15F8C6D487B40A4DB8A7E52088618E
ABBA14803D8443A63CC6A9B76713A0BC7106FA35901E0041E0FD13E37B09455D
B96BCA5156FBE7AED81E501E5CA0A37F9DB06A3634590CFF957F19B40DAEAEC0
28143D167E7B6FB08A30EDDD60B155C66E462BEEF182E7DBDFA9855D63E91C25
BE1046BD84C233061CD495056FE1ED42260437BF28AD6E39D8B5D52BF41BBFA4
F9021E5C9ACB6A54D702D2045CCE5659473D669ADAEAD172F5D17E6E8B6EA115
EDB5440AC1BD80EB80729578522546E6F04931D5300DB0024A799E7DC063768E
D3B4750D4A4958CF1638696FDAA27EE91B3711AE080319D4BEA03642D4DD6D87
A44C6045B5D653C4ACB74C9B31B390B6949BC2461412D935F7CF2DD124B57C41
E0AFAA33DD3FFB53F3F532397FB250637D9282A008C4136A4B858CDA98B5B1C4
DCBD306373B2C1370D8619D1120C1AF0C7F18469F93950FDC17AE1F5037D08C9
044965A365F30952EA13CDA7EAE4D5B1D675C7D9C1472CCD18416B741A536564
46BC33D530CAE6E91FB94FB361E342CF45CE03E07C632C1BFD9841646AF4C3D2
485087A35DEC9C59F1BB6DCDCC20F1BCE457ED37E52CC2AD38C027A6419CC6EC
019F529CDB9BB88C9D5204D95BE3C06B37FDDCAA6BD74AFC50BB8437FC3448C8
533AA7AE44F1A41000029CDD761F098A1651B0C59CF20B75238F601BB9852AD5
DC52007097DC67AC08CAF1B20AEA3B31972E5B2C8BE41CC7E15D2DB719F8522A
45730F724B3316FD24E407230693ECB865D3FCE3D7A7ABF610B4BDF3FDCB185C
23D213EBBF7CEA6246BCA67C705F7221DCCD79D1992281E423FE43A4F74D20F3
FEB9DB1D8523474E46B6DCA6B4651D25051979C1D6DE169077B17943A4179073
A2BC0939CCC80B663B8D0FD2F5C6CA083624C84A7B9B343C3708A316857DF32C
825F8A41A62AD7737C57056D2CA465E03FB1B223FA45EB96EE8124988BACC6C9
63BE50F6EFB52F31639F888B7AC167EF53A18912D16E0F42209EBA23DE1BE8B3
FB0924E1EF2EE2369118DDD904EF4C6548843480D2F97B945C0B6A6EA8FFAAB7
F42E467D8E92D4BB97A000CF9AD1262129029B5A564326ED811CD6ED23B4FC8F
E09CAC72BD617E3EEB095C58A4359D76E7B51D8C20115AE64C0B7FE7AE242188
DB8D436083EC6CDA60ED8EF2911D115E478F13429CC9236886BCE37BD36F6B3E
3491E8E1B730D3B557626284E857E5C28734F0886304C47C376D782B5CE7C5C2
DE876269C32673392B292850CCDCA9B2EBE73A963AE4B12AA0EB9C27860EC6F5
B6F1DD8388F19D15978A7004546FBA332FC27A5097D9E8924CD911658A16610A
FD114711F1FD7F5DC32BD49BCA63F0A56CBCF0D8F9F4406D75E10EBB8E692CFA
C3E4F0E09FEEC40E2DFA353BA65C9F087DACB70B0843A82B58A33047154C071D
531103C5BA0E0891645EF9111EA7C535791C7FBD175E3F0470F4621D99B4675E
E768BA37CDE649BB17BEE9695753C8C5EA04B3654A645493EAAA384358DAF761
5D90960E3992237B2E64B1796657C861F6496EF86AD3212B3293F3DDB9385429
4DA60FC47AB14D1E9208D1FC6B8442ABAE504E6ADC5CA34A3BEC0C693ED888E3
CFEA1EE610680D17E0E5A52EAEE65ECD05043DAA187A431ED040295EBF20F851
5F57793679AA60BE8AF4702288ED4821D62DF99E7EA4E04F2FC6E46C00859F3D
88701C211D0316C8FB8F4F6EE9A1A9811941EFB9E710A2EC1E602102BE0DD17B
7C4745BBC6EF5584509E58E6CF9AE33FF21CA1D1A27529106B0AE53DE38E6F1A
526073E00B23D162E1BCC043800232BEF0CE5CA97344F090F98FBC2EFAF630A6
B7C149EAFABE43DE48452D786B2EEBC3E033F33260EF8AD671320441E18B5A60
0A597B96C254F150AAE975DC9EE8FA6633CC56E34ED9F63C4145C3C557DF9E8A
81CF7BC2A3224930AA0CD1A09F3D8CD1048B8A1A69D3DD524793A888D8E9C7C8
A0086C0EFD9B00D811425F9409FD756ADC0D56D1617C14AB9AA418F506F9A81F
CB940B91B873D0C834512CBF8E9DF02F9670E9B523DBDEE9B319995F9B1D612C
7CFE4609A668225A975F550572AEB25499FFB57FBA86C6799B67B05FD3C9ACAA
386CC947F07DD71317B94691AD9344530890931AB8249EFCE7659E2D69DBFCF0
47BA992FC5325B5703951587EC8E148DDFD28459AFEA56B72C7905E7415B02E5
643C2550FA9D49EEF64D7630F05C185421C580BE9780B643330F5B0B0FB4C371
2668E851BCDDF8662C5D6E35825CF643AE5455597B570D8B43466A748519E1A3
8C9A1225A92B2490D6993786B476E3498C00A1B29FAB050801813006E692EE98
A9E1254BDA63D3E391AF186EB44AE50C37165E2A314912B9D630035A8FD0961A
F29E694636AF4E8912AA9B107AD07E0990A428D7CEB660040F74A48EECD7724F
32EE33B5649B79B63D1AEA095CFCDFEAAFC8DB328130C261ECF940AAC676D277
8FBC6ABB2365662AB1E8707FF091BD337B103CE2879D1FE0CDED25A3722D442C
28F66BF52C9DE534863EA4BE362E8625B859735AF68193302D20887748A625C9
B1E5456BEA215F216E5E0A86EE40DE4413B724FD9AA1FFE418EA2FC6B2368EFB
217E93120F3008BE9029AE81C1AAECE18F0C84758ADEEAF29D5CCF5BF879CAC1
96750FA5C559179F8A20FACE2C1AAB37A3BD510B2505F32CAED1CE7C0C6F095F
56B9593D3493E860A4F0CD6BBE9B2D13ACE1EA583053B72A0D2245BC677898DE
4C57BBAEDD2F2BC42D494B5B9E1CCF3C182450250CEF19774E0723A3CA9320FA
B92560B8394A14E1FDE84F350470523DAD433BA8C476EB389786C089C85E2617
80CCC544067A82DE3E835EA6A13A3597DF92E35A80659FB03F193499D98C5E05
D4C365922C20213EA0E713330E73F30E866B13FDC36B98557D17D670D016DCD4
752F780DACE9CFF8C03FCC05770D604D19A74969F03C81E9FC0B04BB36215718
C319E4C38D2109D28447A43586B81D6966E885C0E844389595C0507FE8502DA8
EF459817B1937114C50A0320EC0B653EC5693A2CD74A0BC34E8E8B576BFF7F0F
191256A374E48B8B75048E9ED20FF5D9329E5706559E1100676A8150FAE9FDB2
10330605B0694EB2D5A04EAD712D7BAFDEADD782FDB478CBEE8A0175680DA713
F8F3CD27E025E28D3E57F1EE98EEE5400A38A059B70E8F051B56E5B463028A25
BE6D0C18ADD9B865F630118435724AF0404EE430A98267B00EABA58D9D815657
871D3505B506A64ED1A5EEFA47BBEBD1513B5400A69FA522C3E12272BB8215E2
35A397EDE80A59BD7D0C6CE5B3690430BAC269497F415A3613048C90423EB2D0
CA0F128924D9546BB21BAC9A7263B0496520AC7264BB57570BD87EE56554078A
DB66E9A61F2BF6FB52992694F753DEB205D221A9AD1E5FFE3B1E9AA3F3169313
D71061E2464531A9BE1603C586DFFEDA27EF90425725CBF4D04B01D6BFC5CB04
BBCB9F2FC458BC84242ACE858EECFEA3E84675377F5E65D184B4B0D29983B957
6C77518A858BD5C03EEAFCB70283764E379497F6D1D69AA0AA51BABEBF1C70D0
E921E28ED71B2781C293A27F76DAE29775D9AE33DBDE9DE3E9E5E43344D472BB
B568CDDE0F46F8BE2A25340336330A47E91EDBDDA8714B7B6F258ED7E348ADA6
C4FF9A7B5288A825A9C5BE1F7387F69CAA5DFFDA4BBD1DFE0911BD7F9FB09FD8
E718D36B4A6DE8C41E538A79AFDA72E78F0B9301CD81EB671D7AD29C8B4511BC
43D9A60E4F555AD27D65DFD23CC7C38A799ECB6A0290B39B4CC2EAEB3A0BE8AE
F9E484071CD400A3D99BF25455580B3580CE12AB5A32C37A9DB4394D6DA8A5F6
607D0A9C3652F2CF59D06A6DD5BA4F96BFAA2CE3E8720712175978263BFD8B8E
849D532DEBEC7D1C0252D428572C42B339DA0B93062B80AB251FB9E0FB7F759D
FF33D0CD5AD743F01DDAC8C18EF20B2CF667A27E3C56809374C598E8387DC401
713C6547BF7BFE3B9B7BD9A33D4DDAF7F15CFEB827E03AF5C150C703723ADB29
F75C64A7E15135F8094557BF2C29E4477CD3AB780729C2F43836EB677ECAC650
997CD5C8CDD466D7E8D8DE20989D596BC11396831E0A4BECC03B9422952076F5
8401C8E176C2EA4996FD53DD7DD02552D2B01D187C247D1320D65A18521DCD16
9684248C3ED5C8E3C076F40ED5A2A89C186EBCDEB9CDEA9395149D4770F54FDD
5EA8FD0D5E210A3707E66395CE9048D92C1066EE8288B7611FE94C549D9D3429
330A1F04D3ECBFB0324BC3768883B9E94B2EB0721438971A8A2BBAA00CE1AEF6
E00173BC577192B2827001D55E1589BFD8CBFAC4B91CA43928489B71D7967460
BC75254F3488E549F5DC010AA5BD7915CC3FEE58E44A5EDD3209D71AC36FFE36
94AFD720EE0AD1D48DF6F996DC992BD3E15B3B18D421E79DB23902026BAE34E9
49AC009FC962DA5078B07757A269F9031D96531A7A2B5128F7DA91D2918A6606
84C07988AF500C6410DD8C42CB8E8E758CA3D70588F52318242809E088202E84
FF95260E52D57B5F1B8451427C5A60501C14D0374558BB26B3CA2A9832AFFA0F
D5E658AC88706DBD624A13D7E83DD038F93707B11B68E06D7F06A9ED28E15F82
1038AC7152414BE14C3FAB58EF948661E6AF0C6CE6BE74D82D490284ABF9A63C
A724D6C1AAFDCE2A6662607C45793EC5D15A5A2486ADC6A7C96A8117AA7C9DE2
799DB3A4E5ED21B0166F0EC2197BCFB6B2671016F261B36C8FE810A9D5E76D6F
3856E86E3EF00FE191F08F9E4C2F99C2FB8E27B0BF2ABA8C122199E86CDECD06
8482FA9916E497A1EE9324F3A78F942CAC95FE0B4F6BB2FA210BE762BF037381
2F52B4F4CD386BD7AC76D15FE7608B097611E0187108BDBC8C8E2577727A8202
F9B891FA8CFB9DE4C6602BC628E3392CB3A27EFB49697368BAB8D8514B6B3B6B
CCA3C1C6212A30620B06BB4849E72283AB0C4CDD6194849E37D33F42C1316E9C
C9D76C42B49F088834B0CA9CE46CCE9A0DE62272F131508D7205E5340B8B5138
79C103C36CC6C048D5D611B59A1A26C39CB5FEE7836548B584BAEFDD20016298
72F4D3D42868EE9D0180AFF34F26E9A9EE152444E1C8B065A03CAE32B4E9682D
3C5533626790EC4662D633B0CEF570FB82521A567C3B619A10CAD57B2C1C6F4C
5DFB392291C415FB31E3845478DD8DAA0B0B001141545A98867FEFA45467C824
807D5F54D8DA67C4B996FD218DE1A39F0F0FF2762665E6DAE84FFBBB160043FD
0E3F9610614687A9E6817793FB18F408645A11EED0D5FCE68E66F7E637A0E626
56E3A6DA43E873353BE9AD36E7A5837D430B59A9A789D8BFDB1AD24F1D4CA8DC
1C7B40029C2A96498B797BA08506C35A3A7273220FCBC1B8F8FA68DC4540DA34
803DAA1675060BA5FE0A7E35C23CBCDD16D8C705531EE8336172D56B11D3E84C
089D25E066499D5A0993D23B93EAD5994935FA490FB6CD60C485061080A11B01
5CDA78CAD742076B2991D0C58633A3B8A32CA49609AF63260704906293B20EE6
CF2A6190D0830DDB2AB8CA50EBC368BEB29CBCA9EE3693DA323E59C2FE3EDE85
375FEB7EE428ED126F71A60135E92BDE8A36FFD01DB0DD3ED9522DED036F15E6
712FD08EEF3439236839B6348E529E8F980C78A5318BD6A257CCCA84CF5B640B
4D11511F435EE77E12C79D94B68F4EE803348A4E3CD865071014348707DD9820
0F8387F44475E3F87086F1769EFCDBCA4C97DF10D9116B3EA8BD209DC24762F5
3C4674AB4A9D51C39FEA92A35F4B7A795EAE9EF031F69E9C56E45480C2A7FCE0
F5DF2B8255DE4883F41FDBB8A602FB5A875D6BC5A6634FEDFE47440C2AADF42B
BB84EA2DEC47434A56766BEDB6A84B827D7E30892E8CBF46F9CE17B8C72D07EC
ED904250EC57CFDC875218AA133A29CB9C8EA0EA6A3C5C835DDF8B1C6B64EB55
C3107E9A42EBFE1652590E79877B4234A53BFE7564D3EB3EAC98042D95075F81
361FD5CA574D38CA37EFC7316BE730B5C161F685EDCCF279F74CD51A539176B5
B3C3EFDDD7F6F95938CAE320C75CB177F416B7D2A639887063F70071DF4EA899
5BDFBABBC5E54D0A484118B011DFA0F27357D73839D459AB5A4775EF1098E723
C486637DB4D9CA284CF4D40683DDF81ED3C1D8FBEFF8B1A868943840A85CDA6E
572C44DC36F5E8E814ADAC02637A8C56F0AF92A5C68A8FBD4E488BC7AEDADD3F
E30B73632284082659FB295C9CEA9175C388A808CEC7A808D8F723EDB014CCAE
F1FFB607AF17C2C6744BD42D53BDCDC28CC1309065A452F24E9799D1BDC93B47
A36A32FFDDF4460AF839D7917DF488075BD380550CAEB86C56ABD982B5884457
CD3F2ADFF2EE9A7AD50C9CCA7DFBFF9107C40DDC9AC75B9D88AD6F5518D17232
AE742D254B878982585E72146DF091CBF6B6D0E004FC3479B3B9955A6B5194FA
B7E5ECD8EF5A61CC8B044EF6EDC88ED34A5573B1238F69ADB7061B4767D9AAF1
4C4F2E84D065BC631FFDF96B956849CF946643E596EB48791CBFA7DD4752E07D
94B1E28BC4E8E706C5F0F834B9ECE847AF56D6A1DD0EB7D0FB93213CF514BFF4
07C9262C7A973CC460DC23513EB9E2F4F105601E4DC88AC205E27056ABA6DD20
4BAC5E9BAB60FE5953AEC4C6F5A71AB7E84D74A38E48754BDEE31C1707E1F29B
42C31339FAF377544FA8D35AFE13A63CE1DB9BC4B85D8D9139B4F0D6FC12BE34
2A1D4FD36794545A9DD658508BBD3B149A0166F9DBFBF50B1F9BF4F9BD656FBF
1A7DC482B6630924753608666648A9E4AF28733F7E38C881C7FD656A04F25F2C
85CD4BAB7F31C71296F987555DE454AAF1924846CB309B754BD516CA27C23795
1B6F77484449EC56C4F85911E5F5DC97EC58D6E9B845740A1F5DA8606C70DE6D
4F9402977AA4DC01A644FC452051BEA69AE442A354210F33C0093C041965D404
3D8A68F4601B94E052B719D52C3376FFE9692A7437AAF6A2C25A783731249FA0
7A9537EF9D29BE3AB8A10E878F648F40D61B2FCC5B0053312E1D83CA164FC5C0
379014CD881DE7092527149B8B105A49932D9F2392DEF05BC94AF265D9A5D28A
00F211B7A695BD43FDF574EC40320C91B71241CEBD102DF6885B025765209A8E
7E3FB85A14387C1E20B919F11CB04996EADF5F66329F9031DC447C761FB33CDD
0584210A1760EB6668544A99E4BE7D15EF1CC19031FA9B52443A40BE516A1096
9691095CA5CA41489FCB97120CD61CDA5428291F3FD6837E6B4E5D2381ADE357
E059B6BA118E1EF57C17DB12A67E5A579EC080BF2D3CA1983FEA1EA483E824A4
A80A8435BDB6F60310CA03B60AD2E3205C55BAC47B79EC09172AEC0515A8797D
606F99898C160ADAC6E262A4F1F2D07958892CB2154977AF1919E4E9850CFD27
36A81DA62D2C7CAD00D65BEE632EEE18AEFDAD0128D65B38F351B92797076C93
D91F73F6BA0EE3401126891FE05926CADD8C8AD74E86424CB302B28109FA9A68
F8F6E6FD8E3C2C7EE007E5BE0141113974DB142D9156EC9EFB07EB3C820EAB0C
BA25623EFF1894A88694EBA61865867C7F1068124BCBA945D0E75EBE04879BE1
87F11700ABCEFC5CDDC646AF5CB2602C8353D8635E379A557C5A951C151E181C
FA9B95FEFECA0D60D7099CB7EE5C05FAEFABD05C004B0050CA92E15D647D7316
7561D5C03B178CB1B18B23FBBB04AE59A812F7A55BF6D81803A234191C848DA3
DB524793E552EAE5BB627C9666CE2A241833403B0050C3B89CAE827116535EFB
3F8FAF7CA50B06AB6232A80B8E92BCFB0D38472670FFED57EC027B250DD0EC9E
D58BC1835E52FC9FF3CC9268A430B40992E2A64E990109F63E3385780CE7C029
7E63329D09B603AFD21373D047148B598466FC4361AC69BCEBD9F59AB9CEDED3
0436030E8ECCBD6E66B8037FA24C7DFE49306AE32204CF7F2B521A04DFEAFB04
34113CAFC29E3D73A898BD73E5857D1EA29B4AB4DF4A01D353F047625E309C5E
9C2C6AF567DA929F737B3D0E715CE06159B21C9A4CC951E256F3A0DAC451F1A1
54AE234F458C32AD910C05ECA2386F93E3F82FDFC27056072B33E584D79AAFBB
48380A230D70DEAF9D0B3EEFD931A261A949738359D83130D24E206FA95BF614
E46E904C2873E0914DD65E0A810EC92871183B333AE464B3615E1680AEA42DC5
99E8FB7C02E568CBF8A1A47BFB113FDFED602D2C8A9DE8731DCEAD09252180B3
B95923FE90B3A1AC74BF875CA5D2C0AEDDC8211F5048F9FD6D25BD12FD5D5D0E
DD890F0B9B12071F0E17E3E82146ECB52DE1FE304F0E0D3DB60FB0F3FAFC850F
C24A2F9A4D71F22DBDB9553F4EFD34920ACF2C74C7686E50311121D81480464F
894B64A2D041E3648B434CA47EC3EE98A885C4882EA8E3932F081BFF1975AD52
F23B21397A4EC196FB19B831E6D084026151BD06BF63F01A9DDC4451E325D1AD
708F755449F0EE31984FEBDEBF0B8526DA3359D8E961B6D9000C56ADC29AC036
7C52E235CBF74187BB9D3A47A3AE06D1A3B41024699DD17855A3497A2FA096F7
CE11AEDE08AD603248EA2DB552025D91F6D57C7B5BBCAA992FE82236B090DF5B
D8B679A2C0763A3D703FCC595AAE05EACA07AE7D2DBDE2247B67DBB65DB6A9BB
9C708904BAA267177617F51466CD9779E8F23FA19EDF8F2ACCC5A8BE80DE63C6
46BEA9DC2C48BF3A11A14AED668F49D06B8461D0968EA7A0E84063137AF03DBD
C587F6A4290F0D649D4A5B0475926D0DDAC6B87063D501F5171CE6EABD2796EA
4E0B99B112D2ADB236A5D4DA7EF07F22CA046373EDCBBE7C44EF152710A12AAA
7EDD9332659C09D554D8351DFB506A1C1BB107AA04ADD7415E76881BE854235F
45FC1097C798EE6CF5864A1B7632A49272195ABFDDDF11E42818DB2DBC444CB2
04150197F9735E538A240A9D2893DF7F73CBAFCE22B700EF3E51164DE64F4D71
B8E256FF1648CB0CFD24EBD6EC4260367F8C82C9BB4608CA3E9EA39A5A706D75
73C78180B58B5DD76E90670120C19E23D56EB727468B3217FDF169452C48467E
2EF861B01D363B8C0E8BEBDFCE30EA0B5E61DFF16C069759C24B37C3CA054DB9
702BD101C6C55983DD12E01D97F9F77E35739CEC1F485A906F05BB86212167AD
E278558A0BC3FE97B0AD1ADC69E0AC996CCC9CE5FB24668BC9F95A539B203678
F1B63E6DBD6172C88C4EA817A7E7AB4927664378F297EDCEAAB7FE066F541A4D
96B584C7D9E1D879B75614F851E540EC109434C34CFDAF7CD53648EB5411B19C
84FD561F72EE570156605BBFF716070C2589A371C8C4850A8E423A492885C4CB
B75EEF55F9BF508A141E8E39888EA1CFF518421922BD27DB56D5F54A7793F251
F0AB45C08F302CB0F780D9D8A695520AE2ED18BF8D3C1C2EE8907AC3411F0CD4
E2DCFF991FD8036E56667D710432E100853C2784E8ACAEFCB8890C98867B0250
D756426E5871DCFDD0046238C8A55ECEF9E8C43FB0282D4ED1216F2DAB43206F
2548307FA9C6759FDBAC6417C95A06D91F7B104F8575488D2D40917E25CB404D
A5F684D71A071FEF155DDDB9AB8C5B1413915C58A75C8F4BA7226568A902FEDB
27EBA87A4F6645262FC3930568BC41C80282BBF87ABB785464BE294C71DF4547
5FD76686A92236A2C2DBD7AF098F52E31A1AD9D2F80E307144F190FB9DE4394E
CAB7D3D0DCACF027DDF288F00F066908AA7ABC4F9ABFACC9F75549266FF3E64F
530A3EFC2A8C85D8209ADD4546CF68260B3479E61747528119B04ECC6CC5F6CF
4A14D852B4AD3902CB9A28A073E2990DBB6922952F81051B3A77DFEE8CE3BA3F
FD07EDF84B30E9F3FD87D70316BDB2DB78E0942EE30CEFA328FB93167AFA6489
E9C5C69C6DBF11F953FD379ADB08E330C50BE864FE1054D707097B6ADDC2CAE7
59110CF4D3E36F7A27F9F820E6A6953D1B813CDE6F5A6C30BDEC0A4A8FB34A48
DAEC8A2F4BE25AEF25A0BA90249F9DF021590A573D8CE48DEDB4CC0A4C458F4D
32CD92B876A245451D401685FE7F7809609B1E56D7B81FEEF6C81641FBC2BE9C
F517992B951E80D95C068170188BD1F3994988F598ED8828A8611E34C11A1E5A
CF1E7EE3E8AC56A15280ECD6D3EBB4539CDB019A0AE538A7DB201EFA3CF9EE89
B1F52A5B3326EEBF334BC5575F7F323B5E511EA06998B007BC158A6BB3A30E2A
4B2F70FB04454A478B5F86A126C348B8953147E56BFDF5DC8F5C38BDC9D84DE5
EF7FBF05D4DF78AEF88F5745C86AE0379585F02F85C49705AB761F28FC10DCCE
5763751E40B8C5D6F5246AC2C76D3C1C91668CF33927692D130B5846C771A052
1386041B234E740FF79EF6394FA9AABED70E2EC0D2D1565A89CED7CAB59112AA
2EAECA1FBE7BF68F66E2C4780763350DF399299CDF3961C3ADA512FFCD584BFD
1F4A8DE731FAAB4F1ED3AF8EE2E440733C8D022E7C44D3B1A5D6123DA3757BBF
ABC6CA359BF5A1DCAC5CA7E06446AC44E37233CBE2351709FDC39988C073645D
CA8AB96631B932D5A2EDF5B9DB08EAA457933C52AF3F1E7D29AAF46D641AE304
968C9ED86C811D8A041FAB12B8461603A85C4F4430393006272454A6C4238E9B
F7B16DEE76351C379970C8E410D38724E36C19F594195423B6B7E99C88559058
E47F58F1B41BDA40705BD5E40F3CD8F431A8B9C5BD99C4CE4C4ACBE29B46E07F
27DF5783F2395812DD10CA23A3F37FF103FBF83D9C042E65EFFDA46FEEA71E77
64010273A6E62E845A69B302D884188F8758909A2FEC0684C824994BC0605B7B
DDC978452E0FC87CAA135943659A0D858999D82FC69DDD58A174F6DEC04BB5D9
D6FB1CF6E5C2510AB236D57B4E9BF7ADD67CB7CBD2DFFC0CFCF4FD50B7C1FF66
B85CB1C4C19061A5A997DE6B1C0615B8DED2B496C84A65F1AFDFD1940BD4039F
95E4516E222C6145B229FF800C808187FA7D8017B782BAC5B573F8067E9FD4D1
728E8521C28F6D4ED0A8F1E2DFB59D42F9E841020407C01721B720A145366FE8
263150AEAC61706D4FBF134206F335863B3E6D60198D26F5A7564A5F724C3F34
323837A34902EE2357C8FE7889997E83BEC47E6FB2E9C3D59D203C905E9ADEEC
994971233E72EC140EE1008F74A678A8321E3E9B3EFEBF789E1DC8CCD6977D74
6E63E46E85428D06DDBA20705A59862AFB65F59FAD5DF52585BE9A87D22B14BB
550FFF53E654C0B97E5D7259073181A04606B2F52DBE2616306A89E73CA1FC6D
B86D9B89F53C11EB909CA3D60D1AB22348AEAC5109C7ED5A6D0F37343E179D93
8C33A8BFA55391A2C9DEF4BEAD1C4DCABF3B3C9E5440E641A4B2F62B5E358AF5
4C8F31D39D7BFCC3DEED1E86D4D2237F21144F81347BE253A2FDF505173E41F2
F9DD84003E0E8AA75D85CCE50CBE981CD6C1E2F42FBC77A2443A323E1798545D
471ACB10FA472E87E08DDC88994DAAEEEF676177622059E0B3BD31DE85737259
AADF75E50919700E73369079C5A481E25B7A51025096A4374EE3D26B37CAA91E
F8BD8D87047496D5D1B2B5A5A7ED721F7605DF158E27EC083535324CA4FC985D
CAE4C2D51C8743130E592C5C4CECB1ED07074C48F37A14BA9C7F7E6D0547FA0D
C0E6E38F09BCFAFBC0775AF05F89455E1E2F6DB8E31709BC67A07EC5C30440B6
8635E71CB0DEA97CC74E8D9F561E2C3D99ACF0F157021F94FC1653A7A81EF22B
5CE58D176C3F4EAB1303B2907AEA4A60307F53B00178DB999D000E862310F7C1
B5AA94DDE05DFB10457366333C10B2B46084F3F3A95F7D61C80B1F5786756F6B
BFCAD4D3AD8ABC814F05082BDAE640D2F0D17EC9F56BDB64969A1FFBC7C18C28
68C613CBDAE7DD1B4F0BD0193FD37901BE725A470B82AAFD037E2E1048A528E0
9D47122C7621C3B004E17A7DAAEBB7C8523C947CEBA3F837154919B6472533C4
5C2B0E7FED6163B50922CE936EABDFEF2372AA456B96EA9E443589533A8E1DBC
3587CD8955614ACFF71D99EE92C9866BA830B8B51658499B46FAC3991EBAE7BD
713F064EA32365086BC574A62D950AC8A172C232BC6AC99D84030FED61E61060
65E3299EFA964E947773FA449323A7B079433D506B1F2366362CE31D4122F611
921D14C43ECFA080C7BF702A07402F59F973238F89ECE09D72BFAD8BFA608006
38B8F833EADC1EAA1959915DD2503B89EF26D94A52D01ED6B7EA351A40672DD4
AF6837263AA07FE62C86AE07E23E9B88E3945EC1B3606933EAE515CBE2AF5337
5E2A45EA51F13700CE750DFDCDBE5D7480D8685AC5870EBC6EF0362E296839DF
C48982510A742C4B5ABE558F026A1F73115D247774ADBA5AC720D49304834F39
907C3919A68724F3C43B97163486C9CD70CF48E3A48716B6DF15C27DC6F39AC2
2AF39A294DF7A0881547CB7791C262C06E0E2942F06015B6912E2E46904DE82A
0562B4A11DB05822053B0BDDD985564B43146A290EDE3C188D11D9DF72875314
EADA124E6A5FC60CD84633528786068AFE586BFA1C18304E05B64621A07F7BD0
722225BA1DA1721BE73314A3A2B8BD58688D1044169F0F0DF39A135DD2D092C6
B0C4EEF35831D304C550C56323041DA04FAACC55C6B623AA0786C73E52F7AFE0
8CBE48F0E431876A2254489E9876C33A174A27A575F6379C22B26EA9E281BDE9
BC9F8DA64C88ED69E7C02C890141E5720530E7E91C37D09888D3A3CB65A4EA3C
0DE64C1C19DFDA3247F4BA650CA7CF9C4FD7C06AE5CF9A28A356BEFC6B951B16
EA9434AC7BF3E70670E204E20D6C5BD57A53661E41B5CA3B2E673BCEBEAFDDB8
BF2B1CB24C48BD945A67C9EE301D5288EAA6E8EA1D486FBA14BA1FD836D7143C
4A0328035350588D1EF8BC6913BAB1E59079F7F719F08517F644729DF41DD698
683AF00C451BED4D6F67D309E9DC4543193F2DCAE8E5A694E850A2CDC67590CA
D3A80A4654CADB6CB233D2C5309B302AE0A4B17CBB171C573E243E8B13C310F8
D70B9CE07F7B16FD2710D8172596E95F69A32F355381844F4D4B648040F03252
B9C51F4FDB47CF92A64FAC2402AF1B6619947DB794DD3EFE6590E7D7DA77B9E9
B65C9681B20DBAD776A4E3900A9913FA4F6B672573D9C16A8C953FE57B69F437
5685371DA2DD2061C25DD3010D39A5949DDC69FBCBF18E8FE3B4F7CE9ED20582
DC2657C0237511291CCF8368C628003A7080A0B7F160FA4BF5879A79A5F1B80A
5A57D21DF9E9348A3317C66B4FBD14842924E69C6C16BE755A8E06BB738F57F6
0E62E7848FA91AE2907062FB5515FFB76B7B70F8A6B66BEB44BD1CB001FF232F
A100B8C062B2107D131E965F8EEDDB2C590F8BC07D5FC1AAD81B7442DEFE7493
4FBCBA8C3F84C93953452C1B36027C699093CF595018C1972FF46273420E40BF
1C2E82F09BE0841530D6B136DF80B3F52415EA3DC798FDFEB76B653D7F272158
5A7B7CFCECBA00F869CFCAF20A48696380F175E0CF89E3FE445885BD41EE3339
2265D0F14BF7F1A24CABA8DAF7B468DE076F35D951034F4E6A688F7CE35C2D59
19134A750FD0FF9D51B33C1AED99C0EBA1EE4254085C61D6D087E71D238C76
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 57 /nine put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 80 /P put
dup 83 /S put
dup 86 /V put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405C9AAFADB8BE41EEE43AA
16966E2C0CCC853C4C09F245ABFD4603C4AA55EADC0A59AA6E9F5895FAF3D3FA
83EDC6E2540417530AE7DDA8EF33DEB81444316FB3F93EF944D9FB06745BACE4
848398BEB747E58310BBA39C64E341185C82CB77E9D4439EC15BEFF1335F22F8
F036517C436225F4125ED67ACA7A84230D4E2B6CA713FD6B3CA54BEB540D4604
D58A8335BC20052440C4903786FE3E335E331CCE36A13F05F71126F680077AAD
ECAE10CB7C057C2D55F384723D5C30D20FD1358CBB61AA05EF45403C3B8019EC
6350EBFAA67087C51CEC46C57343BF65D95EABF9FF3F9D24890E9F23038EDA34
4A89315DB8B646CADA7BF32FD8BDE14BEA9D5DBE8300762EBDF59180DF5E4D49
E2ED26985E5A4E0A6EDF8479835FC183AC8E222089AAEED6F37448819DE8E8AD
38D9632C6F9348055F9A8B00B39E4D9788A27CD6955245CF77009D6472B8BE7B
FE8B118A23A1B707B170B77BD750E1882FDE51196F72328E5BF268DEA6D43A6C
9B262C5BAF4AD6E854F5D7A6DB6B59DC97B57288C17766166068C994FEC7A1E5
A2FED2B73FFC4F06E908B194F0C5A0A86231244B74BCBFC85245257BDDF9839F
3330E0D652BEF603E504BB83A1EEDB820B4E2F8A3A323458808BAD0C2451EB40
B8607ABC4AB4A0AB6F6EAC640BF39766E846A49909435B387E50C3C0805746B3
63938E88CA3194DF610E278828CB97AC7C0E2E75BB5A9BE44E196822F3C6331E
C35FD5E1499F26ADFD82C6585E084B84F691045D26A526ED690F92B91C0B62C2
95EB9523687F8738720FA116E912E30C5CD0BEE34EFC89936DDAA114F1F9B6C9
25A963B20A4696C2953E285FD626E103E503DF0706F90367E1EE834FFAB82D6E
42C07D98BA368FE762F64F7F11E1069C1518DF0990ACDAAFB55D94C0C84CC318
92A3BDE52043C7C78D398AE4E7FED3BD5A6FCB35FE20A2A52962A05B46A2453B
BB5F46D179F9977AAA33E6AA81C98F5002F02D3E7B33B6E6B23B1DDA74A819B9
7A3F23EDFB82C88901DD8D0BF1BB6366B5B2F5AA8BF5D077BF51B83A1CAB4E1E
32964A0671950529D4097F080C7EEACFDAE42D3F9AA038686211D567EEEEAEA9
21921D93F0819E81D7B6C1875FFD1F2B30BF8C65CBAB090E92DC2C00D8195F52
3A8B2E17426C30F3CCF6494E381C06D427FDAF05CE0700A907C5DC332CE22E0F
674613001672F0229EA507D4DBFA5ACE89BFDFCE18AA88283655BE850DB0AD97
C71BF7A3FA441D5F91AA84AE251DAC038087150DD87AE0C08EBA54305F720A82
DE4EE25F0D779885745A562EF01F462B7B988C66F2AF03C076D0F29D4D841359
D93CC99EB696CA379B1B8533EB1BE58E5E639E9C73CBCFDD76263967B6D5C7A8
1AEAA651DCE4364B39AFB9B99EBEE2EAB332785C6EA2AB18734A5EE33EA865F6
01ACA2EBF348427FF6293A7DBFF3BD3B9F494CF6B9D74039CFF3F2280D5E0242
30B92E1993A9C82810A0F880E8FF4DE55D758FEA89367BAB9C7979BC56B75AFD
5171F9EF3E55B0441787C37CA3474F21A602D2965684E85AB20362495F896998
9E50BEA358CCF6B82F961D64C18A8E2BBEB344392705536FC93DBD0CE43DCA34
33DE4FA2B940282F6F2633AD1F77897F4729358F06AB92C81F6215F3F178C7A8
3B6B36C1AC5D5B849625F6D4133DBEBE584EBE97642427264DD9FBA7BCFBC311
9338B4502BD40DA1FFDE1011731AA9D31F8F2E3350868CFCA83A21B73EC51F15
A58122FC88F9FBED6EB136D9BB21AD3CAD93A6DC3CB40628193C0C538867EE95
A9C5CB8B7DBC46571D6F1045F28B6852E35C1397A9800F59D629CBA7D4058B7E
FA09C9FD31449CCA2CF014125397DE37374C5C333AEBF6E3591DCF4BB85AB74C
BCB96CE604A3B7123D2D6992D979F91A265AC7FE96D4453CF6213332C2C9FF14
9A280ABA564C919CAF66C648395647F565C2D54802C19C9D4B4CE89360B88524
D6C0E39E5C88087CE2F7F7AD2639D9324161501DAA3BFAE18FF57B195C9DCBAC
7CB8FF3EA0AAA46823F273EB137D8600B87101FAB68131DE8473AEA7C618EA1A
F9C590027875252D17536131B5907CCAA7733EBE92EDD0E121EA3ED409DADF65
E6DB3D730A9D44184A24A4938BDA0BF3FE92D872EE8A83792F4AFB9A06B96103
8D5B065F7A0138E2A0593FA8B86A96F1127744F4AB932D02C136E49E518A3CAC
16D45C11543B5688EF685BD1950F51364A91DAB5333C9DCF032D93C72172547B
2730E06B6760AF09B0EDDCDCF57F34FA74BA070BC68C8E0B8346A846F9CF4B6A
1A2EEB264F14F38E46CEDEC5F1A8CD3D4D5F182DDB2BEB39DED28E483AB7E3BF
262D06B9BCDC4CCCC9389162018C33CD615E10F89E68B4B3415913AA8C914DA9
0F05AFEE2A3370463F72EF3E9913F388CCE6C90E04CF5C9B4D2FA666A3BC8F32
20404455DBE7D8C3CAF064E706EA16C10F2FA4BB63D50650C19318675F9DB30D
0B0849BFC84586CBAD20914C2BD300B274F046CC0DBFCAB13CB1078CA199952E
6BE84CD4EC683467E3802B87DC4E6C148FD78428B2F9EFA455567AD17CF4598F
4810F036133BE313108C2CA38911ACEFE5A284AA163AB746B5EC34F2FFEE0002
B15DE232BA826ED3B5D4155D7756A9ABC56DF38099A7039315935047FFF5F80B
F1764370018C3E0AFBAFEA62233BA25CFEA9AFFE929AC5B6983C896F295054A5
AC3FD59F3FC88A40DDAA3DAE2F1B76BC69A86285FB3FA8DFCA876E24D74F688C
9CA6224A7D1C13FF5F936125309CD1B480F539D80CBCC0E7BBD4AF13F437CE63
3072411A208A18E81ED26BB5FE72C55E6D5613891B4E7DEC4A0C56B2B24CCA89
C6572B614E00C051A4234ADA98F47829F9B408C0A951443066E3B0F495E03C38
DC2C041C8EF704F6E80F9D40CBD7451106D019560F68C28EB6D22477C1107E67
526B9FE48758470B87A1ABAE3223E7A5C56B8BC6A8654131F82ECAEB568AAE33
EB306438C93F844C0124CAE4428E2B6B9A096D19D1E8612F20A35EA3596E57C2
65E538DEBC996B90E82BEC94DB78506700363E7F2802FB125A31B569A0EC0186
BE8A40BA53F7E6F06F03B9C7932920D89B8B9BC246B6D9E82CCD404A41A1FCCC
0C1F379D6E982AA80B7FB11D8DAF5C16EC85F58C8734EF90D7AC39B5CF52AA4F
296BBB8C862480C9A3F21015D95E48F401E6025CDEC05AE2CF23AFCE9A50361D
69B23F62ABB08B5E321D1D9C9855A9F868BFD91BBED6CC6367930FC7961B635E
856E24FE31B57974A2C3B282B95CF61D1515F7EAFE1AF663917CC65ED28E9D74
AFDA655DE66E6703B7D0F71E24BEAC1ABA9D7ABCF8A0D66EE2338D907ED5B41D
E5470E1A66658C08930289983ABD4437C2143D87FE2FBB56AF9B6AE449F18884
E0F092A21EBC864ABD4801B8A5CA8FC44361C78DCABEE8C00FD62F2B32D29C59
79428C4262744670CB0BD310A0A68A87E4D96E96663A5C26EA410972DE812D13
7B82072DB5202679945E21DB57954B496F793140185FCEA63817A11EAF3CFCD9
2AFBA60363D882A69E7A36D3B96A40F1AC2F0CC65546D086ACF538366E8B70F1
E5FC82A44193228301FB39EA49D037F4750DF99D6994F1A85A86CBE929FDDDE2
996A64B8DE86965AB3D182F5326A3642056F0F3A1617BE6F18B0FD55EC339891
E9933AD8316D768E49EB617D87AE348AD5D98F7FDB90F8126B3A1C93CB3C8779
70017203F6359CE442E9DB1FB242F165CD67534283ACDB28C1C7FA5AAD217FE6
5315B544D0116A8AF92381A9661CB1FDEB244CEDB4E7A57AA532C0299CAE8CF1
380DD7BFC9313D3189EB024285913983297AAB3A83F2BECFC383E9EFF9D9C1A3
E81CE03532436CA1469C447E381D0623238456AF8AFFE32197F97393B0CA6834
970D4E940121E1534B1EFCBE8FAA881A436353EED2AA30EC6ECA61483C4EB25B
C610A5D7E315C5E73782A3CACD9BB0E1C26740A5B0FC2DD58D8DEE9D540CA4CB
077913041EF03FBF22C0E5ADC01B5C0A7494227297C943B433F14EDEEEAFB149
FD908B4A6C2D906C4D8ED7AB24F0C12016F898F6D728E789507957FACE7ED90A
3E7F8247B99BF96134D5149B4CCB46B064FCC09D40B7F721410A629C69745C92
D60623A7CD36FED79B244C1444724ACDA78F9B91680A66C3327F3EFF963312A7
E596BBAD9CBDCEB92637A850B89905172025B53CCE01D0CAE4F94D4441BEDAED
DCC8A9708953A490AC7E304194EB0406BF37C0143A026E899B42603272CA29DE
1AB86434AEAC4DF2187D777148288B47E0038EB8AA7018857AF6917A210FB80B
4360A328F219295BCD69AC7E68613773888A24B88646FFC8677BA93D8DE6EC56
2101F4E197376EEA7F3FB32A503A8E693A23DA0601D645EAD1B5D1C77BF9839C
8F3798FA86B747831061773B03317CF5BA4EEB90D6CEAA722F4ACABF8DCA85A2
CDEAD74271BC047C6985495315743C58DBED88966B435313ACED49E09D34C961
8C37CE24CECF903ECA336B9E90F305D2CA5740589C08BC18D6D32731CEF959C7
83A8B28583AD75848C3D9379A39364DC424EE21EF1BC43E18E0699C6A4E680F1
B9E4A4383D3D6D87CC43B10C05CCB838C8A9349A86E699493F38B4FBEDB8AA07
EC512E1E53210E4DE7DC3D2335D45FBBFBF00F03D00FAF78BC3156758554C92C
3E35D88B421E722CBB2230EC38C4ECBF87968570B7249F92AB26936045FA7627
80F6B2D9DB350FE5B063FD21DD45CF66E377D4B01B47FB56FCA61FBBDFB8508E
F4C71C37CA5853846071AEF96B280E0481F87D85EEEAC6E5075D8FFDF764B603
02E2DB5BBF10E6D71C888843B7621C8141B00A77BF81895BF238D7EC73C5FEB1
1DF06AD91977AC0B59FB4ED55A89F2DA4D296E9672077E88A3CAC4B2B7F1389A
A523A5F9DC509BF857321157ACDBFBE3FB65A9B24C19EB475A45656370EB0559
AD85A9CD5102AA6AC8BF912839A11B21999954B7DB79EA615CB84A3F2CC8483B
66F8D2DB54B744C1EF1E66D437FED5D6FE84627B3B708DEF2E831D10F696D616
7A8CE034BE3363B3E5B4CCEAD1D514ED5EA4F259A1429AE530745F86D6FBC9BE
797FB3D9ABE4FB34114595E361AA1F026193D1B25FA514E280DF874287FDF7E8
52FDFA604B75BE68F531EF338CAB238D34EA2F1C817B2184D37A5CBF4FDF4DE6
D2807754A292F50340A8A09ACCFDCC2C999B62EDE2ED9C25D1DF022166120F87
4B911E99E865FC01823B3F68A41DC880258AF011A87FD4301EFA523F83606D2F
85C6EA4F7ABF413424817DDABACD08CDDA62D9453D0582A36352E5DEF91CEBA0
829DBF1E007C64F90ECDB8F7AD84A2F5323500AF51D325DF8DC72EF944A1C48D
A7BE0421B69587390426CDBDA2F54C9FE3ED6C21E8AE02B09DFB899F54534866
0C33DE0829E161796BA041375A435E03C1C324D4B3FC28AE59C1E31A4A8E557D
AA02DA0CFE9041E6FC2B49D22206D4E9C3540700266A068EE77C80C8F6EB8A5F
A50D3E1A15B4414B3F6E053A581F88DBE4E744D8F4C7CE9285F8AA0D28DDB12E
B5873B19231EDDA06D4C5DFABE76B774393624151F44E12E804FA8D5A6966F25
AD49F7FCDEC3B9AE5260AD677755C4B9B85F3C7795593C37692A03A9A9BE2842
8B18CB40626D442CF6AFDC1FA6F278BE88F2C92468489617468450B0AC624C19
13E1265158AE34ACD3860C33D4B7541ADE077272D4EEA498BAD689837FD06F1F
84F3CE0EC8E2308EB60689A492C1AFEF0F7F67B5F2A297AD4C198490A6140A56
F22DCB0CB3E0129BB8EB5E19F5AE313549221512547B49F4FF9AD628D97FAF01
1370AA02CBFD1776B69DD69D53EED651BAD6EF5E647B3C415B2C7D85CC1C26AA
DC5659B03C77E22DA433ED026A7C74AA48878DA4045D004DEF50F42BBBFC7366
14D5AB82B2FA9895F654E340CEA4168E8255EA0B072FD350B87482D0BDB190EA
57A9BBB0B35897423107CE6FD33B95CAF7C10F9965430DA50EDAF0C1F2826685
5669490466E61610400AABEF796A77F2D35A993E296AEEEDAE309859074FA5D3
E8C4FE35FF5A44DFE73E5F5F1E852EC929ABD9CFAAD94FB18C625813475FFA10
CC86976BC8FEEE0EF15DCDCD89DD160DC616F006D6DD9947867C4C377FFFC3F9
14696D234B96B1D6FF616B62CE999560A4FB11A5C4A5967954AC248986CF5A49
B88CED0791BA984586F34A03E4C8B05AD3BBE125B700F95456DCCD18D8D994D8
A287F46C5BB43A4A3B87AED7547C60477A1B9D5C9B9FDC8C00B4C7D069B4B055
E6E4ADC3D341726399EE724F8BC51EC7AF8BB4F7F39A7FA124BCAF6DBCF5B587
E12F0EC4964EFAABFCD6677B231177ED9A7B1C66F2ECEC1D7B03E13AC1BAA396
9320F03D1FD914FF1D55294F4549C7D778018B4DA0C0A9D180A44D27EEEE944A
76F9617531F0FA5CA26E31D3F4259EF10CB48FFA8E12946C81EB71B0F3BFAFD9
15A14DA8B23AB7DBE30935BD6F9B74A36A570F2EDE278A116AC84FAA40254418
09A8F68D68F9365D5A6AF9E3CDC1E370C242081FA397D9E8D6597C7FEAF434C8
3EAA993324A8B66240C4F5FB4A2ACEE70259021673A1A2628F47CBD6E93E0CBB
A01023F1A82AC5ED055154B1B9B5A161241E1022B1F05A1C0A2176C27C23B58D
69D2F314B1CB87581FAB61751DE4CEF11509E66272AB0EC2FA7DA71C8CC491E2
D48C1A4B37B80177F08B8EA37E4B776D58427BE239B19A1D426F32B9EA091EB4
D3201EE3984AD595ADB3E35BFB8C3BD677912B8AE8088F52EB1F727EA15EEC37
3D47FC787FB24BC527F453D05B25A3C617447FDBE094B400241469AF220153BF
202BB17274739D804AF863B4062B81F99FB1D42AEBCC6714C3EEF75571E60103
D0C86DF26D252E7E6E3F8E68097E3D1CD2E885DDB1E770146C6F21B098295FB1
228D2C74ABD50476F9A32AFD6391571E44D722576A40A8857039EF19CB399CFC
EC245FAAEEF3C4659C2F08A16127AEEFDE32195B77FCC2C591ABF1A8BB5AAE6E
E1DCFAB143B1B0DAE4C2409A3ABC70B5BF5D2B96284B6CED8334F1882B13C8DC
BD956EC35AF921445E13898BFB91C1B8C15E3925ACB72E56464269A6A53F6786
036559E44CAC855165D3972375BB107E142060C2A64C65743D11E823AF68BA14
FDDA29CD1877157701A084C130A7A51D8B09E12319222C63557DE8457210961A
CF6E4FFBE2A5E800F5EEC9991BE44782288C3CC8D7A977132DB31BF24391DF0B
564715073337A52B4352A45DAC18DD764DC0F76B9D52DDA81D277E6E4D65E0A1
9A1864D0A1BA761720D89EEA6A2AC98D25A9EA88EAD07BDEA39B76B71586F771
C8D484AF4485F1D8947DA46DDD1CD626E41124F09FC9A59B397A74C0FE716F1C
31493364494AF594E830BA498C6D8D1BCAC01A18EFC6282E4C95CF854DFDAF66
72F18B564294B79B7320468C486F346C71B3699CA2D4F422FF56FC2168F39CF5
7C6A88167FC4954526E7FB12CAA65DAC4D2BC5F3ADB96C00C938657171EFEA19
0B28B684E43E5B9D0EE539DF010A0D1B6D4ECC1CBF542FBE58FB9FC01D411641
F2BBC70BF73DE2BCF4760638096D77DF48C1BF7A6799D2C15D7552F2EA73A1E7
A9C6B3933C0AF9BB25468525A3352F92B3706DD7F8BF7DC4C2E95488377AC771
BA2242C95E3847FA3BFDEA48E23C6C45943524260A3115DB1AA9867E8C6DC2E4
AB08994D1900774505C8E8A5269C4D315B2B91B6328C96EF1A8479D898269E5F
0BFE296613D53B150B2217560147918AF5422BBCE9DD3C1BBCCF17AF565D0C66
D640D1FB7619D5A53FE1CA0AB6A7D8426FF2091584B2A344B2D3DFE235276E19
E6371F6BB08608DF3CF8B008FCDA54E20045ABCFFAA734B92C18AAB128E35297
2D3133B35E8CAECC01F8BE9251E84EA9B3FE95750A3F8DB1699A01FE4F7CF95D
266B3B67A770BC4F772614E804B5D5F3B3E8CDE3F3E214D86C6914BDD0CFBA36
4B3848478577652D5F020F96C42F58A1D3AB67BE09386E2E6DB48AA620A5CF84
CB06042F4E1DE8700403AA7C89FC8A58D68560DF037CB60F132D963A5C89CCD6
34DA2567A86B857291D3DF88E6546807E93BC74281D652D11F7BBC42F8304097
902F3ABC7528B6093710FDD4F385CF08E04E846DAF65B9696453C000516C625B
3A6D6CA692D4530EE3049593E7E672EBC1747274EDEAD42047292EC0E8AD409B
2EA7723096505BF905625D47A606517A7674EE73ADDFB254D122F57C009DF4A5
090FF0D59114316C7EC74EE423102C008560ADEF0549F113F305FE8F030CBD28
25DB7607DBC89752612090118DEE8B293B80AEB29C7EBB8AD332BB300E24D7E3
0F627FE63DA195CF86079A782CB9C07292E0803EE0447D487D83668A5EEA2E8A
EECE33981F08DA12F3652F3C457BABF8F42E7BB2847AC382B7D0D08FD46A956F
D6D57AB2A68968138F01CA3CE757B5A49003625E988045D418138BD9C0B47CC7
95D45E9E69B2316E7B33DBEB7335AD40076D37910446E4829621B28A09B61196
0A5AD8D48259495CE4F420DF0793C54D27CBD3481895E68AF3C1097CF969E2AE
DAC3DBA1473FF1875B370EC6488913CC7BCF768B993F3B436D9FEE565BB1DC9C
3300DE3D95BEAC2EFAA4B8BC06A0456052DD513BC3E08332E986EFDCD9270F30
286DAA8FCB41B1E6588C714C4283C233A67CEE5342838BFEE8ADED31D53423A5
A25D4D5F7D0DDED86F1F724D325CAFC8AEA0C220627D07206D196CC60D983385
8E9F996A9910C170D6F28AE20B7FD2325591CFB0AAD85C95C44627E781F26C0A
A94F12560134D8E9FA608FABC084E799AD342F3F075406D7B6DC71E3564655CE
79D2FE5759F4B33A61B02ED03890EE3DA4E1D173750E5CCB0F5714E82F28A0B8
F583526870657DD7C1DF3C4032EF30B3B772C805228B855FCEE0BC30029B55D7
DA01A99671B768DFE5ECCABB733BC7840B3A7FD18A79C50E8A9DE54FE6CBACDC
F09E1BDD029EFFDC9CC1CE446A6F069DE233FB87932973151F5354D07C15D196
1CF3F111F8990070D5F8A50D88CBA0574C1B34973D0AD692062502828FB958BA
6ED5A1F497C3C1A8F374A0604449E1F5C781E69731733C68BFA69FA0ADADA5A5
9A1160D6D53CE9FEDF4A1D07E7B8323FDC5DB81B7CDFCF1DB68B8484E29460FA
F894B7ED4D2CED836312B21E62832C46E37422FC8C91DFECD7EC5AC01A867789
AC66458B8FB90A59057A9F918B70DE1B92491383C1A456E88816FB4CA87B2B42
8046AF0E0B7DD8FB5A106F33102C6EC0EECAA18A867631A97CF85A74A5B1F086
E1A67FB306931349FFDDA17ED7EE3EDEE8F37C16AFD0CB0AB45001A8F2A8DFF7
FD305CB4EC5B85ABF237EF70CC4B5B9A86ADBFAB21E994E6E50AF52262C18954
0B2DE380095A439002D18E0C5023FE90698ECCA5B53ADB6FE5CA75BDF65FE74A
04BA965C6DDA1509BA248184B57F96CC569900BA9E916F044CEA6DAFF58076BB
122AEE0058C8F54F9D1E21CE0A9EAA477F084906E8C52EFB667A9C817ADC2722
4DEB0E439EDE397BAD90DE6D7673FC03C49C866FCD213DF315FA33DEAE035489
1DEC79D0F6E1A86DD4C769E7DDB12D140AAE61EE27CC0C5F82159F512666A744
83412DF7F1BA0805EC1D0D63B8800B19C70B9F0A610A4D742969871D4290725F
2A8FD9C7EC8254B463FDD681DE9ACF32D1C9874E8E7F1160F04B8399A5B7478D
06535D3DFEB015A2BFE3FCF6B2E3BC7EA3120E7F33B366FE43FA02BDB7C6DA59
5CC22287F55644B2B03D2AFAE1111CE184E06A30808258879BF1A31B8384F3CF
81E09F37987E4E3A72E8762D269D58EA3AF048114D322A343B77DEFB45CC9135
A1D409C692A5633A4BC94478D1786E6002A26D1703ABDC0BC1128C89173D9F54
EF33E15EC3728443271A3F708105234CE12628B5E4C2DA426685DF2BA18EC8D6
A4611244E7E81AA95095DCC2D9BA684358B50185FE053967C99AC4B3E18B65C9
A0A53AD5CB782019BC76882B74B197A9FA6B0A494426774D304170CC84103FB8
FB49907ECF37ECF35F1DE0FD2DD760CCCAE3F78F2E8091D0CFC93515DD232CB4
FD036D8AB5DD2D93EEDFC7C0F0053307C2EFE4432BA184F7A18EBC1D40B83061
E4A515B8A64D6DC33C68D8E00658F6ADCEA94CA717045B0A7C5D9520FF796B1B
CE460B3B0FA790A8F84DED58237873D84F47360A83C937E7D00585848B5029AD
9FB30212DC9C0DD19BD8E10DFD33A934402925BF1B70034D7455F0D34CEAD206
52464C1D77E0B01444035707577F7732B40A563B32CC3E341801766F2944DE6E
0FEC2C09CB454AE7B181B0F45CAEC346CC97FDF5ED7A591A6438D6C35E9A6B96
B451047B627A1CC1A45492F40CB143C213401FF3CFCA85139944F86A6ADD146F
EFCF3CA418DDA4825EC7DD1D2272EC610B544073E8D44FED7A1D19276DDD9A7B
B042F5C66107AE8680F6AE581C8CB42687AD07CE8B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI12
%!PS-AdobeFont-1.1: CMTI12 1.0
%%CreationDate: 1991 Aug 18 21:06:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 46 /period put
dup 66 /B put
dup 84 /T put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 121 /y put
readonly def
/FontBBox{-36 -251 1103 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB
8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0
26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703
3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F
0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A
56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6
68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C
D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E
437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C
052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77
DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0
96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5
2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013
D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7
EF696E091A9D51510BE264701A41C04FA8125A48F306ACA7A83E35D5BA0C296A
BC594ECA2CB27E92FED95B595C21E5BF0DA724D40761CB377BDE5FB98C9D152D
6C0DC98C4083E9656321BFC445CD6FCC142DEF16E27DD6FAD0B3185223B1A7D6
779F39C70793184F2C3B721FD0AE6D8E063BD47804785DAEA74AF8C75483B713
65061653E6889C2D878C3AD50E8F3FE62C0EE5F6306EF501C29CD2869A4DEE8A
88BE797CB40FCDFA2601CED2165411FA522976856092E1F75A3B0E1FFA996C7F
F4720ADDAF7A5A5A2176F76DF305BBC656ED56BE0853702E62F027F7D8767970
181AA065383C7B04C956807B10CA85705C17B4859AC6172A56AFE4E0907D0E5C
86C52E5E01286F202E1A9AD1B98FA31526EA9F398326F643096C564AFEBC5C8F
9AB55D745B85914B7D62687319E9EC9925179A74F0B0C9C95BCD4DFECB482041
F2B3327DA10DA05F76477FD57DA2EA8E986DA80086CD2B182438A4B9885DE67B
9A88B83E158F618BC31B66B5EFA37552EE5507716BFD86DAA428CE1CE81BCD8F
DCFB2901EA33FEDE56F914C21585749297125CA1D5AF397DF6A9B52CBA5E49DB
EE5EA8EDD6EDE86A925C41A56A29B489A51AA74DD5335E621F04E487291516B5
82996441C9BBABAD105908071761D943531287989B51AC46582170F411250333
5B1E896350C961935157EF816B33AC9DF35611E5F1D0CBB9BD43B11D72F8D0AF
D0967673B09548AFD4D0DDC199D0B4C0C6C0E096C85968691C6DD4945830C0F9
E19162B0BB4FD79B0BF0F082EA9D8D10C1747D28E52FBF26D508F30E81CF3D21
E26481328E255021FC3D3570AD5DA30E4B737CBB6A25EEA57AD33BA3370BD356
97CF28DA8387516533036438FBE6A865D31C3E5F278C2CF1919F5B419687A694
B9B9A8D3D9A476FA3B94C898B3612F3E0E2FA4A356FAAE421B7FBC69A1A21C86
2EFDB43273780BC13D22B0C71170EC0D8A32C0C27CFF9E7350498181282142C2
4FF9685E520D24CA161CD68EB49C925F15562CA178FE5387D425C8CD1E45B74D
EC6098C5006B7E6CED3A1FC3542F0591028D7F9F55ACAFC860B06EFB994538D9
68E28B1C9CFD902D39C9A292DF569EE249E1052B82BE86FF63CB0133D4E71A9C
02C039B12C03E1CB6E150834279EF8F6E6889F829CFBA4943AC0D71219C8038A
C15576B5AD16B754BEBACD14EEDCDE79A50EFAFF3BD0373EF93B97706609BA57
0C20B91E2EF32C8E85925416DE752F29F43F144BF3EB9E7E1223C1AF28C16B6E
AC8DD254E4482FF206697C6DC202088EC68B7FC4F4152A35CF33281EF55C7D71
696D719AA7D3494160DEB97BB51E5673A6AD31171353E61DAAF386658A4A15CE
B770B1D141A6D60CAF087819C02799BD2F3603E61D1F8A7AB4E9DED375F160B9
DB769F3BFE09FE1B5AAFCAD6ABCA73C954AB09A1E67B91B2C8D01E6F1A6B300B
620E5E4AE3D644B4C8EF20DBE2091EE1E91CD7939797B5CB8CEB8EB6C4FDE321
AC9F4B85DA8641FBB38B63726B6F639A51B2045DE0CE618931D238D6B0E54459
33227C39E9831B9CCEA4019CFD8ADF2427841C4CC4FC97849622B9F28C9C8222
61847D9C3A92313C395F0B72DBDEF65E4DBD45028E310C10C100E57A44EF9315
F94D750A3E7830D69103B0D02500B1E34EDAF5B26549565483748E493B59F55B
B976243A12D2D7561BC1D5C926E384C0EC44922CED78F52FE942218870E650F7
4275686351DBCCE1A40D134E48DBDBE590D198ACDB239D6E7DB073C6D0A215BD
76F873A86B3AD306944CAC6120B059975B28110C79FFF72A5D75F7BBEB2A559C
84C085522B728AB84246A3C2E614D4C66DA8A7625EFC20B2CEC19C92D87D11BB
4DCA9600B6E3040DB7DCD08EBB4F3EC4521CD756AA02EE799980455538949DEF
6D1F6F9C4C1683B16168DEB857F327C001B76ADD9F025655CE59D5FAEF6A3B26
27ED5C6F956906D4B7232569B7E57E58120EB95F0103F124D7F81C6A40B9C507
73299E3E674FD8ABE44EF657E4A9302F76287BBFA134675CD775040856653671
2EC036CE3649453CB53A3D4F90EEF15357B46FE3B6082D173564BBF15FFF8B2F
99370FAF4C1F9D0933FC6FD2ADBC2954778B6052DBCDE5DF99FF4DED051DD5C9
6C3DE2C27036FB79023DA27588B928FE8DED786429858A1E668EB349E40F69FD
50161879829774140C28D7348031BA51DEB606FC3B7D15989CC25CA9B34949F5
BA4CE6D50277E004F01E3D303477793074D5B67509FE46892629438FD15A4203
6EB4626CC25BCA6228EA0C68640CDB7C72F8929E2284E5AB0B70284902163C0D
F9CAE0F9BA2D00177772F9AFC6F92BD581E0BF1BB017D27E15E3EBFE30F3B3F5
E9275008C6F670A5DC5109C1241E020123490B21EA044AD195D0B9425FA778E4
9AC45FC14D32E06D913DCB69271F9B79FF2EC512A65EED3A9E2F1E76483F2697
CCD302340CAB219FFF90F5C63A3C568D0A23FA6F4FF9CD2CDD5F525A0E85FB76
3EF1EEE803D879EA82F0E7FEBF0F531B95DE9F8C9E88A412484B1620E32E82CD
7A5526E3353121C0E2A425116953E8DE0E87DC66FC1383A41C9241C2745E4BB9
4192EE61A4E8D8600EB62FA36B542AD709C59D3ABF5417738826868D1CD4C476
EFF8D3C1EB5C56F6C41A4FFCF6C1D756596F6D4F2D7528CA002685F70583E2FA
838091689203F4D4F356792C87779E33DFD199AB5C27F255BBB829CAF901A68B
11F024030E2D2BD1F9FA9A84504FF37CD6398C19F71C448610A9E36D11341E33
DCE53B8B312556C4E0A308F49E427BD7A205F2249A64FEF7F50348254442BA18
C99929C7A36F2C5BB86243759A2E5131C87D0C106BD95005538066BF0A29ADBD
D9BE00847C3D988BCB38B4BEF627DE7CE3E6560F305882369BF298FD70CC3875
C36A4D61DF6EBC644600DD49C1DD8AC10D6D6E3602716BE1FEC4192F97CE73AB
EAD89EDF2A8B68AF61A8A6C44D3CDC7391B031156BEFAF77CC558CC96E1E45D6
1607A1301BB26CC97FBD3CC00E58143A0109C5029FFCAFC6F649096E474F2E8F
A18C9936A921876397274CAAE5718AEDD27A23CAD1BF541467CEFA929B838AFE
F2CA33CE841F708C869812A0EF0D33AED0E72B85BC8443B946A21EF78284F6A7
4A016BB5EC2D57DBA66CAC51604FF9BB284E7A9EF298BEC0B545DF997F7A2A8B
D6B359706C439D47B66BF92B4E18E4C328EC2C8703198D7311D85395826CDD41
23FED6F696F0F23B24EC4ED24AEB00F4B6B9D01B043E02C102A0DE1D380BFC4D
A6074DB684A93DB790EABE317A5CEF9A22FEA554AEA7CB4ECDC8C0454B7331BE
ADA1644C8F5EFB5B472D553C4B1B8C28AC72D7F2CB13F11CD88FBF9ECEEAACF7
156B708FFEE3BB9BB6E6A1E6CD31C58AF3CAB02D284DD02D8BF67E131E01D930
3C5E0F57976A3791292FC28E38253E815984809B957275F637E395C617ED10F9
EF2DCFB54B51F8C66A94508B28AAF647F14FA6FF6B06915D941327E043C599F5
2D82A50D4832ECB013435217459DD1391C25EE481FBCA299CA63008F430E8470
C631627E714AA6A8850D937A9F258E7606276F4FE5781595198D34ECAEEB23C9
A207A177670DB98A32165BAEE53AAD09479BF1764F2BEC0130812291249098E3
929CFDFBEC61C0CCF4077A192F3AF6E9EB06E84B25C683E0ED716458549B331B
D545735589DE9822D81E4B886D75B8A38A7AD25D2A509FF0A59AC0B1BC932D15
5F395B8E82137E1D533CF74C6429336DA88E8E2C829CCBDE4CADC49A90B8D059
1D8C31D1E434D46641EA670E1E0019FA651E0E09DD160321EEF7724504CE72EA
C89E6C612D7094E7F00629341B69F4CA5D8CED4E21A0D2DBE7FC5411CCFDFA47
7BD9C0DEA72C3240A935CDB2EACAB82CA69D5DDD48CF13D9DB6030581CB1A5E1
93E6B3F59E8133A41FBE7D079A94C66D41EB9FC12A0523077AA1918EF24E26AF
3725855A400BFB5316FF06FBB6293C66F0264257608FFEA77AC6E678BFFDDA88
84094C8F94240D3810F2FB6CA07D30C7B39D9190A1C3EFB3A82346D5F58D6ED6
04554EA6C1095393258CFB9D5F16726FAAB907E82C536482F842094C785E261D
F25E7F26ACED4C99B976E0A31A9950C5817F5510DD333B1DB7E421AC5069C18B
7660A440772E02031166845A6C6D751667F1BD84F9508C421F7A0C5864AB9F19
A60EB02806CECF427DAC2023DFC2F08F806432E02079D7E47B86C272CDB453E7
65AEFCAD70EF7C7FB2F91441A02A2FBC24BC639CB1433AA37476149CD3B2B2EE
ACD5FBFBE35429CA3D52561C765DEC87F66433FDC101B6EBF251786BB0D01E90
B73B5718F2927BB60F2189EC67301E1EEFED6C52F112B2681DE9DEB9742ED8D3
15D839EC7F1E33EB934F38784C2EA98D33A5055454F404B775360B5EEF37BC2E
147315F16EED9E65E7E2592415751630B7313C97831E35DD00A19A33899E9261
3C544FDB934A9975394CB129C2466D1524F73744FD6DE473D0087FB2BE877B55
E4967BD62B53E6830CBDA674480C1DFB324973ABF09B31232CAB835D77F99169
ED1ED1A7FC7EB1BBDE26ECC942CDDBDE22C5FB747AC08E107B2F126318721F8E
1D07DA7E0FBADD72C468087368976681B8CC60A07B0D7D7A8F8CDAFA22FDCD73
15538D391FF40B8B40B5FAE9351C82D132FE2DD507EFCC6C5D38E245392434A2
90E5350A53ADD89B602F82BD0E2B2972C6C186E07AF49A6A3D4CAF2B75EB6866
C94649DCCE8B34FB595484CB4CF83EA35B708F02D71F5EA954B541A632437430
003309789160FC9815A5EB89DF08FDAC0E8F256546A3901F7A7A33995732D94F
BEED3290C7A01BD3884AE0D8DE151B5750F982616249D09B65947E82262EEAA6
EE5E0152DBE15C433C8C562F201979F3F5D94BABB1D9060AB702D4889357EE7E
8A28A49FC6C1FEF71562FEDD312337BE306E7C9961C1B1ED6DA64E5CCF20E1A5
2BC22C22C6FD9343E9E87044AFB3007A6F01F151CA1C63699B023398EAE75558
31E1C99CEDBC639FB283FDCEE95F4E70F55DDBCC7E927C635B90552BABBFE993
621B636D68C8C1E01C268924642E3D01F6E8683B2AACE246750E61B381A14CCB
291EE90C5B01C8A6520B5FA39704856D392BED5D6D3AF560C1D39737D3BE2E20
C3C8D38F4547884B924B3072D0F8A012A019DC68CDD79C1167CAB15F4900C11E
FA2058679248B3DCF9F45A9439FF1AAFE122FD7366E2FB36D4D763DE91248396
916747B68B8396587B12D6B035AD70B5A1922843C162A9CEA816501B4325EFDD
CBC66F557C15726AAC6212B8D936F5448DF413CB5B9AA9FA1735A71D67995EB5
552F99B305F28176884A774F7CE831E1A0D975C84ADFE5959A2FAD55F2A7CA5E
529EEF9209C8B11B88A86B5715D78E6FDE29E4D7876E0C66AD18AC8EAEBB4A4E
4606BDAECB7C54373F04CE80650609FDBF2DA3E6CD6064501BCC74CA993ECBB0
5D9DD7BD532F64C3D48215ECF092E1EA9905F7080EAAD2C5E306EEAA28217FC7
4D3595AA683EB308347393410E47E364D5EA3D6795358E1CA2FCD8A337A86B12
D27DB12E44181CEA489BA3A2D26F425DD0CA9ECED6D3364B1705284B34D21AE6
0131B4BE07E7AC46AA19D0CD97466D5AE9905C54ACCF9AB33FB1F1FC2961EC30
18492259883B978C8C2D875BB1804C79F376E0E61219F455BFBFCC107EF3D042
3F03DA981AE0C264FE0C23DF792608E73238D723B2313CCF4A6F7F42966F10C8
D296390B52A7BECFFB09A64DC7985B12C02100C9D1457F433AB27351CD14596B
E374C465BBB98CF14E1E1A3AA41B39715971BA7BB291492C42C595AB5FFDCA98
CD6817CEED0D17E0A932E869F96B24CE65B62ED1AC093DD4874324E36EE29110
BDE460624DFDF0C7790B7AF2420EEA55B66EFD2F66EC8A5D4A0DACA9F65E294B
EF9202156BFD762580ACCC7711979ABECF92B468965D73256EB193BEA7057E72
128A0DBFFE4AD6BC6042492F24BA7E7CFDC6926130709E79B756D37133E6ED98
AD715AFEBB6C96C3CA9D026EEB6D28C8A99DF9C0F84A28CC4B98FCCB53A96991
2C4A73ED812B422CF9ED3B9E55253AE2E47E31F26CA372EC15776742D6BD0981
5F6CBAD448E2A09A4192F1E982268CDEA5126BD4BB84B6A659E11764D76DF65C
9BDAB326E1ED7D370776710D1BA31293C4B1155717EE6A04F0D93E6ADF1A4885
085B44D01CC68C652DC2009F2F7A446D92EB61922E0F2B3DADBC5D16549D2F80
1BF93547FFDBE85CC3B952DD7841F71F9947FCFAC3F102E91F7B14BBDED011E9
7D9C78AD4C9B2E6F6F9C1FAFC4B487FDEBBC448C9402D2CA3AE0ECAF1A43846A
CDBDFFD59C3E6DEC7AD11CC2A4F0B46F06C6F029C82CCC985B7C3C84EA655478
FF79E8AB8FE6CCE591ECB39C353A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 46 /period put
dup 64 /at put
dup 80 /P put
dup 87 /W put
dup 97 /a put
dup 99 /c put
dup 101 /e put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 111 /o put
dup 115 /s put
dup 117 /u put
dup 119 /w put
readonly def
/FontBBox{-1 -234 524 695}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
1353CC1FC512D59DFF847ACCD3DBD723607569A47695DF1200E7FCF034374F8A
241FA02CD37D60E6F130825F4E3B33B9D595289132815AAA129318BB0541EF03
01EF637DC9E8813924B37EAE946CE3B2541EA00199A2552CEF909CA02AF5B60B
6CFC028FB559B5A61C59E99D69DDC7125C2EAADA28397DD01F0E7AC8E434F86A
9A2D9DBF6DE0725CF25509C3CA213FC5494E03CA4403F0A009313F032CB73100
064405F8E4FE3F5B5EBCFA3AF6BF253A203AAF527A49795601A96D67F2240EC6
9A4E155F0D45698CE735E008A49409FCDB2B3CD1C6CCFD3141F267D40A01034A
C7BACBA754230A52FA66E06AF1DA28D9EBDC2A718F6F1782BC63563D0FD0161A
8DBA7CF048D0C2B1CDDDD6E6B490D3B95E79E3B978110ED5DC8F4C8867621425
2FFAB4D4003FFC5EF870E7DB4E770899D567864500F6490CE1DAFE0C8A50BFE9
096FC8FCC18B4DBDA4978DB064B4D95449C9DDA98A010577BB5AF6FA4D6790F9
DE03A44F5F8E11953FAB94E4C9BF3A9FC11D5D1EF0760344FD93B64FD1201D07
EA62F25B1807FFAD161AC2673A60D7BCC3358ECB47685F3E69CA53A29F4458E7
E1A201DD29CF8DA9A9D05B3589B809E56B1AB9324E10D417782F6171F791AFD8
0FAF9090C7311FF6D475BF5177ABF4826DEA4A8F0CC061710E415B5B67139D65
066ED849DE1F3D2D2A7E728BB23D748DA4444386EDD7BDF4FB23A4F21E1BF388
40807DA3D2BC3954B8865CD677883F3A7CA076E89C1B554D31A7511029184939
D4FD71C5D64BE83025B994895B05AEBADBCC8F10174908B99C7E4A7E5C277F9A
317274FFABF0A1B37E1327444B5D4BDE6B40CBDB2D4363BAFD8893DF79A21617
2819085B50E3AF899F13BE58BEFB6B535EB83755A1355CE9C6FCF305E07BACF3
5DB05BCC8F19F949394B506294D2D38C8757CECC306C50FE872FCD6D865101EF
E1E826C32631DA5B7B65DB905A0EBDA9E8FF594F4DE3C8511726874957EA02B2
B2BD48E12939B3D1CCC08D666393FE1F1E87780F7395022B1875851E6BEAC961
0E6BED2086DD6DD7503DFAA7F416FEBD08F05DAAC877A792FE9FEDF965B22391
0D83B19BFB2C242093BF3B69B0B9C6691D79F76AF6E62FBB99C5B895C51EC0F4
EFCB6D3139EA2618372C07BE54AC57A2952C7C7B6A55DDBB98C3CDF1554B5E32
97C151F6CA4CCCED0EF4D64067EAA51458333DB82BCD814F16A0845A3BDDBDBF
F12CED225B8790EB971E4F0328044F29539ABE4E3029710DF925277E50271D8A
D844D5A68BDD932A041AE05D0D158F9724A252C34C1AD80C99FE5E94FB8B2441
C8788F635D7C3DB5E1FD008BB6C2EBB5DA1B9A1CF73CECEBFB28BFF5C165DE49
D226A59DCA11E5F7E2CADB5A49AA41B6B01C654F5EDFED334F461C816568C494
ED3ED9DE203EB62E84F18350399A7CEF6FB9F77E00E2C0046AFCB7AE75A3ADFC
8A06A5356293C18282EA87844F2A7027288EEE15B93FA9E67D923DA4E1FCEE1F
3084E31A6D58C4BC3A3E18A7EA44151B80A143B4179758C6C6392138484338DF
57A67480BA7B338D27BB761454FCD1B4A7F5DC3DEFA81666943E37E4826AA93B
83578815B2CD868C81F28B1770783D860D5FE0AF8FD40C1FAA6D03EA3427092C
A632CF82D349D5B85193CC919DA67EC285CCEE9428E8A57996FC89597651B686
6AD06D84E923DB20FF7FE9F86D732C48D5C795B45855A408C81D11EA947CF88F
AB6D293CB90B2830A4049B010B49E3075EDE46D5FAD859554EFEA0BE7CABBCC4
707009C496F952C9CE0C15867E88FF65E16B7C42538D4B2956BAE3D482C9D7B8
2E19A2DB9671B7EB078C0D355D69CB86562C056534415EFE4E82EE89CB503FDB
0B498D06EA201D86878C53CC35167D7F8AAA2F2C4EAD26713F74AFFC513C559E
CE1B2644AE0776C3BEA7CAB6DCBB59C727DD989CA4C39D5D439B2CEF74554B1D
5FC81F7C9798D67C763F6817A4640A63DA1FC1EE26737B3E5D502DFFE539A02E
844327F2368DAEBF1A259639E68FAA239CC94E90157CCBF6D99DA8BA6EA55C7F
263B7705933AC18F5B7262DB7D553D6BACBF49129DAC62A804143008446C8E1A
DB636AE5614D250C4253B5BA6EC899B848FA3AC72E190653341A0AD5C5D34017
C5DB5FD6105A9E84B85FE92F0EABE8FD759C2F7C60C887476B4B05E22E8AFF71
82A6449EEE34B61101988797A14BAB5851C5CBBEE46DF0F59E7A443703F9909E
06A7F2CA408E7FDE2AA14BA37DC64F3C4E54410F3444A2759D762B3BC8384528
14D96C4229AA7A127F5A2DDA61720D760B07FBE4BF97D93F50746D04949E9606
DDCB8041C5ADF75F7ACAA7632423CA8F9E414CC520CD73786F68A0873E94C10A
8BF1C6192EA72097306CDAD9175E4756417733D8CED53C522883DDD894C1B6E5
1B4186484BC3A488314B1D3EC85F7AF14BF4C44CA6A051A24E6ACF92583AD929
E7E7EA32FD9A38E728D541B690580FBB42232A45260F9344B9D3567C36637F5F
01F3AB8BE353C311768D3444B29D7CD6CEE7839D3173D60F5C631B973A4E97EC
46552FF40AD2DA2D7A7416A00BD0F3440B4083886586EAC69D44C73AAD575DE9
1215ADE3E52328F67338659C86491AA09D2A4ECFEA9DB68EC5DD037384CC3077
2B1C6CBC1139F99ED19D16781B1857C0A7813CF3B51264F6EBE2B1979BD7E4B6
EF696542BC05DB65BE3B0F5D9F956E964186748E2B0F24CEFD5B3789B17C3448
B8F517904008A314F5703B6871AD4CED2713CD27299A5CD28D3286B56A5A1479
C426C5951C9B6719B8B7B828CDA17CCC9A9213D8E092A3B0A183B1B3390F230D
DFC4020A4467877C9C0C405726D5D9D401DBFA3163C4D270278AADCB315A4F2F
D2D4EC3F1B2D5D25D5EA854EAABEAE9090D110C6BD9C42338F29FAC4E393C348
99F21F1E2980CAAB0204793EA41B7E0342E30DB6119AFC4CF5D92E5AA338A65D
B921E77FF2DC53286D8C3117E2BE5C4BBAF6AB7E64AE6886F47453300CB1C48B
8CA876371AA55EB452831D6F8D81526C15B7073911654E525D942A1CC220BB1F
A4177EACBC8485E1714523AC637B16C879B1502F8AB589FD8A95A415A4ACE2D2
DBDEDD82B0D5B5178F57B5F4E3BBD0FB98D9C2F214E4FDA528BC729E70B4532A
8446B1EEAB95948A39A3FAFF84A44EF651D374B3AEA0553FE4FE481F01E8D4BF
464661EA7C20AF0C9DE0DAE054635553EDE9812C744C348623A058267F2DF28A
E14FFA3E3AA61AE609BD14C902420965EB4D9228EA2F15AE524A730E01045771
8B18370E052A06731920281167394D1AF8D194250ADB42E29712B49A4B9436D8
52EDF64D498E8B23B9F9A90F323F22FEC2341903EDDBA42A38DB55C9F6525458
4ABCADB15C16645A97AB3064B883299A9FDD4F3A2F3DF78F09714DE7684EB04D
914A619C347AD9AF9040CC9833D1C62538EC6DF86CA003FCA90A641A7689D304
8E10F0C0795CB63C38F35DCD984F7BFFF3CB3DCEA8F66305F020A0DD32F4C495
8BF89D15BE955378FD368CDBFAB184844F9B341F75ACC310900615C01B061FC7
247DAB4825D479636FB24A9CD584985EB514B56067B748BE8717178BDA0A8F08
5C1167CBC615F34EC231C6FA19C60EA591C99B34E90A22C20D63060FE539AE9E
14255C1CD3218EE4C042FB447AFA38D6295AE8821EA40AB8B107A749492E3305
EA981685D29B1948892AC3AC0C3BFB39CC8D05DF38653D6F5955DEF5616BCA67
910FC2473774EB41D249E57C7C3D08EB1B7535578C91B58577A257DB5B47F67D
6E1EA9C8CBD01ACB3C68DDB3FC3DF592EC23006F11BAB2D172F2197737A04512
DA100F660E046C2BFE29D4AC02
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR12
%!PS-AdobeFont-1.1: CMR12 1.0
%%CreationDate: 1991 Aug 20 16:38:05
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 50 /two put
dup 51 /three put
dup 66 /B put
dup 67 /C put
dup 69 /E put
dup 71 /G put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 81 /Q put
dup 83 /S put
dup 85 /U put
dup 97 /a put
dup 98 /b put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
readonly def
/FontBBox{-34 -251 988 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CCDE9ABCC07F
5265DD21F482C3A66B6CEA71901351E079058EF0ADB278719532CE9E95D0C48C
D2BA37A489C88C892F5631EA805D6346CA564DB003781149347CE3E1B92C318F
2B7C04D4B31A86BB36804187E32E482312CEF41839A04DCC9A8B6B24EFCBF45B
6E6F3EC672A804145415F6E497E0B55476CDA8490C47A6ADA5699182EE3F6543
3BE5EE3A9B406D04B7BB13A530F6052313880669237ED4D68B61B67D1EE0FB74
279CA7D24153921CDFCC8E549DD3E60AD14E4FB965254FB1D24466FACD07F320
206A5689CA0D80C16FA4A1D653948D5E5B03654E4C8ADD628766DB6044FF8CB7
3B1FEE5323F1522A65F414A150914EB91F4A6A0C15A5E2F53B4BC25984020C98
051B2F66560A34A205826CBA6482C61D081C0798B6D8A2A7AAE05448F1ACA105
282B11CE6CC46127736E7402667A83D0B28A8B2F52960FC158BB164106ACD49A
1F0CAAF3168572FFE710E3D594AA60CB62EF3C368A2553DC01A9E65362E28384
5DDB6B8588C73E2DA04464B5427983228898C3564F27B8D52DB7EE59792064AE
5E4D120FD9186049D27AC8F04D2D9535CF61E12CFDF6E5F80BCCC0BCB872ECD3
19635FCC1E8B0653B1CE2278E935CFEC323255723DC3ACBE8B44535CCB922C35
26003BC1D971E8BF65105B8F4576422C0712B46BF5DD218D7F66B36267908DCE
5709423ADC92ED5893A11F995DF2C58688462FA93855E5FFAB852A38996F5B77
62DE675AD41ACDB96E4DE4ADD6BEA662E89548CFE17E4D459DA77E9464800776
01C0EF028170E714CE18204B6926BCB251272C99C59AE9463782F11C5B7B2057
72DEECC7467CE1E69780E148D19B02AA045796F7C44613444ABFF11AE7445F46
AD6E9AE3C40D7F85213EFD284C9C113D62BCDF97488AD89952E80C1A34D72E32
BD4899415629B40D70CD0918FE4525A61EEE968A665DCA52BD78E92E127CF95A
699A6469D83A6A1C86E90C37DD8D069B4866543F4D4134873B4E14F9E5125A61
2A4EA47B7901A31CA4B4D4C0009714F068036B169EB2C4A32D0EB2492D354CBA
4BA704B278CDF8854176A193C36080C43C6445B293609A92B38B775D5FB60E08
D976E2ABE91F83308E96E8CCFA07F566B00A7951C2C4D8F71208EBFF6C1C996F
01AC52617EFBECAD704EB784F0D54445B5DD973CE53F474885C61D94C669F13D
5815A983C347D80366D9ABACC92905E33FC3C60155BD6E81B721AB82DE3AB920
5632A7A68DD4CDAB3FE6FD163362BAD024F453D37A7A32CDDB3AAD858F97EBE7
E2CB3EBE92A18C1FECE807245ED76FB76DB288600F401D83EB3800F7AC551665
8B1C0F8B4C5EB3EA284B27520B2BAFDA5EF2F3E0ED55250BD8C3313A90E45646
F9118B116B2D8545587CBFEFF815332B617912C2ED32ADAED59A2FE89FBE2C60
27B5735E8FDCAFBBDC1A61F3D2A361E4714ECF4CFEC637B6E6BE32E7730D0589
7F8D7041A148AE565EFBCE674CE119A698942C6E462B4C2900ED45E368FB9FF6
B814CCFB9D0D7779116A294E6B6A637837226A508408FEF6760715C48C85CF14
A58B1A009B30CFACEA9C3032F91077A14D20A103C261089A72562674A775B06F
DD99F5199EF13F05719474E9CA653003EDE1F83D696F059685C8A45FF9E0E60F
F6FA7154CC73B67FFBB8693919D3E9ABE6242CF6D510EE478DA68612FEF06427
F64D39302B88F6EEF2ADA224ED5FF487DC48657C087FC94CC7941FACE413BD4A
95A572DC2621C1A73C48DDA0E32DF1D8F4623BAC0127B7AFD6406160FA8D50BA
A3B3EAA3F53B67797753D1F1472FC9550250030B930F3F4D132677D8F3977590
2D8884CA86CB14CF53CDF41B36AC8E64E8496A93BA059825A6D20FCA55A07501
5708C826810A365AF2895005252F23E3913BFA6538FE1493182576E164A3D734
0DE75BC93FC260F83CC9394FD934E799CD4AEDCBDED0E08FC0E8E8D8D154F993
A1C51A48AE69971BEABFEBABEA3823CBE91386517181D5FCA3B65BB015AF3CC8
8F4D39FA1844F75CAC30E43636DE3417A004F3ECFC1DD0457BAABABE2D0B7BB5
C5AD5FF740768FD8F612B65342C8352EA35F9ECCD46132AD6F818BE2C18AA7A4
1AC3B92E6535E0A384129B8A760FE5F39A73ED807B589B0DEBF138F6051C4D15
D654688778A2F6ADF2BC3BB56560F0743A72B868BDC9A24B379D853B487F0D91
7D371A6C02563337535714365EB56E0A6281F740B5B104C696E4DF9119726085
9A79B2AE1BCF3AFFEB36CFE1658DFC47AD704821817B24E403555BD16AA58023
B8B3A89D5BF976361BD78360F84D380D68BFBBC4F0D84263F42CED792FFB9C96
0A4FB52035602042ECA5ED619D64339A9DA97E602543887DC31108BC9C880C5F
5F0DD763FE2E7683E9CB1FFA4FC8F0990542900D89D00EB0142E5F071F9A306D
2C3CC68D35D492AFA4CBA4119DB566F1ECA99D03F82168C336E9A150092C8F47
1C3800A8236D4445066349472D8B88C21766974D29D7FA41A40B188B829F2CD5
F9E68A265FC050B0E71C48451B2F4F2399D0374E239015BB679020FD353003B7
0227547CB2577549C333F091B614914ABA039AC3A348757262100D286755CBFC
39713BDCC2EF22A5EB5AD0C94932467E30465EB2B6991C71BA0C7EE69398D5BE
4EA12020B1C5A3029C693928CD65B2C26C3A72637A5E75B9754E1DE4AF222415
894DEF5FAB253C5376CB07FB6BEBE9A1CD5AF1ACDA108D53B55A121E9533EF6B
3E8814DBE9BFF6E7B1CA2DF8AEC94A5A68F5DF1E72BAA58DD9BC791284DE4D00
EC592C54CE2C4EBBAFD02CC12ECB8634E17C0C83A9EF00C203345B6A1EBB664E
958A42753D45F053A2E24F1E49ADFBB044CA9D4C375780AE0FC8ADE48DAA4FC0
3BB5A9D0A65E50C431DB92B06AAFBC1D635B869CC5DFC0C9AEA305FE3406410C
6998FD0F9A146FB718B7E5064D258BE60F84482523DD3187B1BE5EF2588F3719
BA1CEDC05C02E913E3EB505611B74C05ED37627E63AEA3285C8C4DAFEAC50BEF
C4D7D358BC688066958035F75A76A3E653FD74F504C704E425E7E311397B104E
018F68631F12CB5F506A80C5E7F9748083687DB35D927235B9365B102D4635C5
1FED786A62B0AB6D40D879908185E14C3191423E39E16193E46181429F3AB265
74B4FE00B6D316D260DF69032EF3F8BCF643965A41E1D4453E47B0C3AE894995
E9AC4C14433FA6C9EF02D5C6DFEC55D16C7A43556458B505029A6CE795B1B4DC
6C1937C95E025602EF5193307923D206366B3BE2823FC06396F5D2ADEF500142
3DC69D548151C617EB2825F3716D88162B245E416FD3E92005301295080548C9
093899ECF9D8B3E8F87469696F31615847CE4A075ED8E360937D342630310C15
7E32E8864D1098E25F7E882A1EBD6FBFA7344604565CB098888876C3B8CE4F42
F27FDFB7D589A62E3386752ED11764E06789B12E9F48D009B63BB3D9CBDF8810
350F124FC9F40648EE4D6A6AF0DBED068E44A09F9DE87F939AE492C4E9E5B02A
2B56432674707A91DC5619E307A09F904E976FDEF5B9AD8E323D3EA79CC360FF
58ADAEFEEB9392AEADD5F5408C9941E3159071F2934E78CD828C4787ED884F02
89770C8B37C5EDF7645A754947D593FBA04AC8F94B9334AD579C90F1CDB9811C
A962D0A67DC632B73728C3E5C3D6417EA28A22C28339C9FF18E57E7025E67752
84AF59BC22D601B05A9CAEC94051269E99FC23EE9A317CF849CAA439E6B35933
05606DCC546EF2C64202896F9245CB9D205A95C2FE3FF2CEED902221F3B676B6
78D9E00447AE4A1B9E2501DF1F48F5D1C4DE14149BAA60C2C6642CD8F1E8CFDA
4DD5009C4948568627107AEB33327C0A385DE4CA3B579DAA74B094F976E8D9B5
7ED40ED9A292B17F6FD2F824D166F5CDA2877AA68CF433987E524159CB32E33B
D6CFB8F83A1FB2626879C2CC02251AD0BF512932EB78AAFE17870A047A676C91
6118C53DCF30C98AEE1E8E664E59B60B8D0C087940A6AF9C4BCD67231258BA22
6F4EBF52B5B4FFC5A9175C82868DEE37B5AE8C841E86F9C59B354A32699EEDB2
01EC13F82246FEC653F154FC02F05453DDE4B9854534E83C010888C00BFE287E
1E1B809A8EF4F69C901D743575FA4BEA96902E461CA377AD9BF8AF7C614DB63F
83B5462616BE3B01A5D9536F7C7CB2A46CB5242549A0A2E6F134D54B3C0F00BF
336D4003E578803495AC43407975CFDBA78276A333C125B56ADA4325164E98F9
6205CC523D3F942A4DC74EEEA8BB808D39F8AA5D5D21B080B69041503FC01305
CAD5CCFAC94F95FE1138097B5E23EC7300729ED45ED73AD47BA53FE25BD4EAF4
691343BC6597723FB87706F0D5CC8732CA4FB189E9062FB9BEB20CC7720D10AF
21A0F88565AE45B2320BFFBAF792C0A61DEF4973991D227D2724C2D1DD560E64
DA41740A6901D1EB59CE6451A6D9F5CFCC1D801B30660E2263BEC3C3E114E684
471932A33063CC0E8A505F513C2CB0B86803339635BE09087D249A91A5745691
FB63C6A03A8BC397213C0BA3E1B1E5A37F9DD6808203C6B8002E1513F402FCC8
AFE29136044BBB3F632B114308726ED05441788FCFCD85344EA096793493A5A3
AFC9198BD07151CDD82388B96B90A4471805056A19038B60441E89EE1146FF47
1CCF5CA3C8D9083D099510AE6EF638A90011C7EDF852751B2B95EA7E5F3396B9
EC5D4EBFE498A9AD88C3BC5027DEE336E7F477A2ABD5F9B7CFF80842C93C8C87
45D842576AE07244E5112D0BA9C19E6DB66F2F5ECE4DDF25368D77836D6229FC
719EC9E5FC158A5B05AD72D7D752F3259DDB1A9685650168FEC07877D2C8A8D5
3643BD21C38FA22594169BE6416CE011D772540830929C6F997876344026A722
555D9EAEC06EAB64356AFFCCDB940F9B73F5D6634EB76E87385D874E948F4B1A
EAF0B414E8D0D434D771F4D738DA02F994B61E4BB77E3026AF052F0D1C27CAA2
601EAEEBD882505C246F3AFC613CD7CEF215478997FFC861C1DE8E3BFC540371
1FD7D9EC807AEAC9718A30B22DBBB0AFEEE1C5EF96C5F61843CED9F0940B72B0
802886448E8587A17F148D6B5F6C66DCEE67C2E077D2C97FE07C6C7CD074DACE
37D781AACC144C32707D7100E315AA487D809AC0E949228263919CCFB2AB6A1B
BA93E91544CEC6039B762E653C3D4A0A7344422D843D9E2E2A1E2363B9F3F528
0FF9AA7946AB86BAF0842D7D8DD5CBAC47757843C80C5778BA5B716F1640A50D
ED5F96B4501DB378BB74D6487A5DB5353EC6D01A69F832481128B01B3F09060D
37FF2E2EED9AFD77DB33E08D547D159B035A5672F53C6DCA59C45CD50A30EA4F
3BBBCBBB9C52723386BF5E6A253FB3BC7D42DE9F0B1802731437C62DBEF4025C
625931DE4B9579D09C09A8579AD9FED0A960B92603BD6B82D9C271EE5A71BA98
5E93C4891EE64C61087AD8927BA61E9E90F8DBC5F5E1990DAC1D38D209E49FB7
ACAE120C0B2B48F81CC4CC550D6A45313EBDC8B1A1011040B9FC31EF0F8D822D
14E7FB0BAE21EF244EDAA4D36DBCDA0D4C41B00C5DF3E46B9A238ADF581A9AC4
27CFD8C67EACEACEF6DC1E926513D36030D8A9D384694EF0461DB6308F5649F2
CAC439EE283701C42A2E7A5BA5098D562B5C1A047D502A742FF039168571F900
A79E012EFE4B1E23840EBA684F370009ADEBBE003A1301B8E45D182ACF4A8A58
596B3D1A80248925B1BF18B129DF5CA0A9930E7BDFB051BE879E8DED7CD7FD0B
1817E010474F27E4916129A2C34BBDEBB6F9025A54AA2C4BBAAB685F46DFEE9F
1770283919ED17C2805FB4FD0221C563013A8D656649ED9434502C4CF12B0D40
D7C84F0A9D5FF6E6D2DF8D423CD484321CC5F4557DDCFA114CD9961934E4536F
F6956D5FF171A5267B1EA1CAF50EF0744A2F3CF095018F9F34D016EDA8C308C5
D91C8515FDA942B459EE7B0A997070EDFF727EDA1D6E56F0A588028E84C8D503
204A9E82D9D58C1343BDD1A195E553A88424866DFA4E32716B322252AB6681B1
6386D5E004E4653838B0D3CE8D63AB509E90D65D6AF89B7E70D99BDAAE3F4E6D
7CA9A2DFEA5DB4F4ECF6A1592E86D5314700BDA361DC6B9831208703E830A85C
2AB4D508715B81081FB65B41CAB26742404BA8CD00AF1A14484E1EB5D58E90E5
7DBA4F7BBFC19E2E31982CB91C883509AA96CED308BFE2B3E26FDBE9123C0195
96BC6B98F10987AB772EC63B898EB47062E634C9732A9B266A219FD4A4EB350D
F3D8C962E7B15772DACFE0E7BA10E822F3233A5BEA89935EC408220E2156F7C6
4164A930319C54A8CCBC767F69635A7A550D60EBAB8469E6462C201C847BC889
128DFAAF9D78A8FDCB5E208CB81D20FA34E434B8954FF4FCC8D1A6261C25C42E
D5FE17378441C9C31FB07389E7220E4677DE890891D8BA092985C16A7CD50F9C
FF58E981C634B0FD455BD43128E8D38A4ED83DD9E05ECD6EF9A5C6561BBCF1C4
C4A5C2BC4051119DD4668BFEF62C6BFFEE9D712506444548FF6B2E528DDBD95A
AA7099C910EF6A9962DD7C4D34A76B11FA3D9DA105BD847FFD51AA95E6F8952A
45ED3F94261A0C1BB3960C85413BB9B6846608B8B2EE22E84C82DDEA72843D33
DA6042588C79EB3B4CE5652AA169180CC123251DC876E99BBC123E7A96A90997
01210455EF79E208DC5891B071117B2F31E97D05D741EF113259BDF8881DFC65
7E847F2405510A553FD8A2AB9BDB93B9B227C2F3499092C67E9CCDD0C45A4AAD
02D187E24B6E08903603A149B55D7752124836E3453C9B7212434D86B4F1BF6D
D4B1B080E729C33C66C214530BD96A654D3D0FB037E0C2CA595FB1F0CE23FBBF
CDD3302AD4B5BF274A3A5E67DC0F86B774DA56F9812EE62AA8A2F44B146E5C39
21E598F9812CC1A477900F929E2BC7BB75D43D726696C1C68DA89E1FE9BEEBF9
58E2ED9E85DE234A4353928B24CE21FED1B5097DD34560D9CB3C4361A9DA97B9
93F19C49DC2D9CF7BB158B3B90BFAF43528E2D2922FD216A9B6E9415F021435D
2EE6309E575E89B4E7612E70EABE36301125AB0B08FC3BC5994ECA4A3C6809BC
89BFB59F803BDCFBF4F4A48E5020F9B11F5D9F4D4001FBD50FBA0988E8341B70
DECAF3060FDA9CFF210F80172706EB8A6B524101C163D3CCC572C452CBB008BD
6DF85131DF9BD576E3823C7B4FF2059F632E193EE0FB4B80336E260FFE1FAA3A
397A34B34615A30AEFD13776FB90D269E15D2A53CD3273B89E49260A7E4E8DF0
041D6CC295C98D48624DF5BD247249FBB3A655DC3662DB9D8DEB7481181415CB
DD59C969579AE93E8292189F8DD578D6AEB24898E1705BF6FE31332B2A68390D
C87E207CCB260D131E4121AF0ED6A99F85FD24B32875A7F4DCA995997DFA607C
6D836FCDE1486937FEEA423432A7DBBCE44F8AB73F9D34205C95F478421E434A
B2BA26FB24F31557F9F884AC80421BBA03CE49BB20743F376452D262328197C0
2C45CABE12483323AE6A4CD3BC33CB507DFF1E2B37D939A089365FD1A58E6964
553033870837AB4D646F65AF0ACE319393D872A7600ADBEDA079543E467B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 39139632 55387786 1000 8000 8000 (main.dvi)
@start /Fa 134[497 1[680 470 549 340 418 431 1[523 523
575 836 261 470 314 314 523 470 314 470 523 470 470 523
9[1021 1[760 732 575 746 1[694 784 760 917 641 1[537
394 760 2[694 772 732 1[760 6[314 523 523 2[523 523 2[523
2[314 366 314 2[418 418 314 26[575 12[{}53 996.264 /CMTI9
rf /Fb 132[512 455 540 1[740 540 569 398 404 401 540
569 512 569 853 284 540 313 284 569 512 313 455 569 455
569 512 3[284 1[284 1[768 1[1052 768 768 740 569 754
1[697 1[768 938 640 796 526 370 768 803 1[697 782 740
725 768 6[284 512 512 512 512 512 512 512 512 512 512
1[284 341 284 2[398 398 7[284 12[512 19[{}67 996.264
/CMR9 rf /Fc 140[443 115[{}1 1106.96 /LCIRCLE10 rf /Fd
228[1107 27[{}1 1106.96 /LINE10 rf /Fe 133[1107 33[1107
30[1107 32[1107 24[{}4 1106.96 /LINEW10 rf /Ff 145[512
6[512 512 102[{}3 996.264 /CMSY9 rf /Fg 145[547 110[{}1
774.872 /CMMI7 rf /Fh 134[789 2[789 830 581 589 610 1[830
747 830 1245 415 2[415 830 747 457 682 830 664 830 726
10[1128 1148 1039 1[1115 1[1021 1122 1[1418 898 1170
6[1145 1079 1062 1128 7[747 747 747 747 747 747 747 747
747 747 1[415 498 415 31[830 12[{}47 1328.35 /CMBX12
rf /Fi 129[523 1[523 1[523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 523 523
523 523 523 523 523 523 523 523 523 523 523 523 33[{}92
996.264 /CMTT9 rf /Fj 139[1004 1[1055 1[1435 7[1435 2[1178
3[1256 29[1865 12[1291 1291 1291 1291 1291 1291 49[{}13
2295.84 /CMBX12 rf /Fk 129[470 6[470 1[470 470 470 470
1[470 1[470 1[470 2[470 470 2[470 470 470 470 39[470
10[470 470 46[{}18 885.568 /CMTT8 rf /Fl 134[497 497
680 497 523 366 371 367 1[523 470 523 784 261 2[261 523
470 288 418 523 418 523 470 9[966 1[705 680 523 2[640
1[705 1[588 2[339 1[738 614 17[470 5[261 314 2[470 366
366 40[{}38 885.568 /CMR8 rf /Fm 206[406 49[{}1 664.176
/CMR6 rf /Fn 206[441 5[680 43[{}2 774.872 /CMR7 rf /Fo
137[537 7[664 1[330 2[381 3[515 2[475 585 12[647 17[840
830 5[307 307 32[631 25[{}13 1106.96 /CMMI10 rf /Fp 130[581
581 581 581 581 581 581 581 581 581 581 581 581 581 581
581 581 581 581 1[581 581 581 581 581 581 581 581 581
1[581 581 581 581 581 2[581 1[581 1[581 581 1[581 581
1[581 581 581 2[581 581 581 581 581 581 581 581 581 581
581 581 581 581 581 581 4[581 581 1[581 581 581 581 581
581 581 1[581 581 581 581 3[581 581 581 33[{}74 1106.96
/CMTT10 rf /Fq 134[537 514 736 509 594 368 453 467 1[566
566 622 905 283 509 339 339 566 509 339 509 566 509 509
566 10[823 1[792 622 807 1[751 3[694 851 1[427 2[723
751 836 792 1[823 19[396 3[453 453 27[622 12[{}41 1106.96
/CMTI10 rf /Fr 135[492 9[553 4[430 430 553 553 51[738
28[861 5[553 1[1107 13[{}10 1106.96 /CMSY10 rf /Fs 138[615
430 4[553 615 922 3[307 615 553 1[492 615 492 1[553 12[799
3[753 1[830 1[692 76[{}16 1106.96 /CMSL10 rf /Ft 131[1107
553 492 584 584 799 584 615 430 437 434 584 615 553 615
922 307 584 338 307 615 553 338 492 615 492 615 553 307
1[553 307 553 307 1[830 830 1138 830 830 799 615 815
1[753 861 830 1015 692 861 569 400 830 869 723 753 846
799 784 830 1[523 1[861 1[307 307 553 553 553 553 553
553 553 553 553 553 553 307 369 307 2[430 430 307 4[553
1[307 17[922 615 615 646 11[{}84 1106.96 /CMR10 rf /Fu
134[672 672 919 672 707 495 502 524 1[707 636 707 1061
354 2[354 707 636 1[583 707 566 707 619 10[962 2[707
2[870 3[766 2[483 996 1[801 836 976 919 906 8[636 2[636
636 636 636 636 636 636 2[424 45[{}41 1106.96 /CMBX10
rf /Fv 134[757 3[837 518 638 658 1[797 797 877 1275 399
717 1[478 797 717 478 717 797 717 717 797 12[1116 17[1097
19[478 46[{}23 1594.02 /CMTI12 rf /Fw 136[684 1[684 1[684
3[684 1[684 684 684 684 684 684 2[684 1[684 1[684 9[684
6[684 15[684 17[684 46[{}17 1328.35 /CMTT12 rf /Fx 134[686
1[939 686 723 506 513 506 1[723 650 723 1084 361 2[361
1[650 397 578 723 1[723 650 11[975 1[723 1[1012 2[975
1192 813 4[1021 1[885 1[939 921 14[650 650 50[{}31 1328.35
/CMR12 rf /Fy 134[946 946 1295 946 996 697 707 732 1[996
897 996 1494 498 946 548 498 996 897 1[818 996 797 996
872 9[1852 1354 1[1247 996 1338 1[1225 1347 1402 1701
1077 3[1402 1410 1127 1177 1374 1295 1[1354 7[897 2[897
897 897 897 897 897 897 1[498 598 498 11[498 19[996 12[{}53
1594.02 /CMBX12 rf /Fz 138[1196 837 849 879 2[1076 1196
1793 598 2[598 3[982 1196 956 1[1046 28[1649 28[598 39[{}15
1912.83 /CMBX12 rf /FA 134[1635 1635 2238 1635 1721 1205
1222 1265 1[1721 1549 1721 2582 861 1635 1[861 1721 1549
1[1414 1721 1377 1721 1506 12[2155 1721 2311 1[2117 1[2423
1[1862 2[1154 2423 1[1948 2034 2375 2238 2203 2340 15[1549
1549 1[861 1033 45[{}40 2754.12 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 8000dpi
TeXDict begin
%%PaperSize: A4
end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 8127 16904 a FA(The)1033 b(Nomadic)g(Pict)f
(System)14259 21025 y(Release)g(1.0-alpha)9904 28260
y Fz(Do)60 b(cumen)-60 b(tation)716 b(and)h(user's)f(man)-60
b(ual)16551 34731 y Fy(P)-50 b(a)g(w)g(e )-498 b(l)599
b(T.)f(W)-149 b(o)100 b(jciec)-50 b(ho)g(wski)19042 37880
y Fx(Univ)-36 b(ersit)g(y)434 b(of)g(Cam)-36 b(bridge)19741
39430 y(Computer)433 b(Lab)36 b(oratory)20574 40980 y(New)434
b(Museums)e(Site)19881 42530 y(Cam)-36 b(bridge)433 b(CB2)i(3QG)23643
44079 y(England)15063 45629 y Fw(Pawel.Wojciechowski@cl.cam.ac.uk)18539
52172 y Fy(Decem)-50 b(b)50 b(er)600 b(19,)d(2000)2000
56100 y Fv(This)564 b(dr)-80 b(aft)565 b(is)f(stil)80
b(l)563 b(b)-80 b(eing)565 b(che)-80 b(cke)g(d)567 b(for)d(c)-80
b(onsistency)565 b(and)f(c)-80 b(ompleteness.)737 b(Bug)2000
58092 y(r)-80 b(ep)g(orts)558 b(appr)-80 b(e)g(ciate)g(d.)p
eop end
%%Page: 1 2
TeXDict begin 1 1 bop 0 9963 a FA(Con)-86 b(ten)g(ts)0
16826 y Fu(1)1024 b(Lo)-35 b(w-Lev)g(el)425 b(Language)38373
b(6)1660 18154 y Ft(1.1)1133 b(Primitiv)-31 b(es)599
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1789
b(6)4206 19482 y(1.1.1)1270 b(Declarations)284 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
f(.)h(.)g(.)g(.)g(.)g(.)1789 b(7)4206 20811 y(1.1.2)1270
b(Pro)31 b(cesses)884 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1789
b(7)1660 22139 y(1.2)1133 b(Names)370 b(and)g(Scop)31
b(e)369 b(Extrusion)499 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1789 b(8)1660 23468
y(1.3)1133 b(T)-31 b(yp)31 b(es)892 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)f(.)h(.)g(.)g(.)g(.)g(.)1789 b(9)4206 24796 y(1.3.1)1270
b(Base)369 b(t)-31 b(yp)31 b(es)1110 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
1789 b(9)4206 26124 y(1.3.2)1270 b(Channel)370 b(t)-31
b(yp)31 b(es)369 b(and)h(subt)-31 b(yping)727 b(.)554
b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1789
b(9)4206 27453 y(1.3.3)1270 b(Records,)369 b(p)31 b(olymorphic)371
b(and)e(recursiv)-31 b(e)369 b(t)-31 b(yp)31 b(es)691
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(10)4206 28781
y(1.3.4)1270 b(V)-92 b(arian)-31 b(t)370 b(and)g(dynamic)g(t)-31
b(yp)31 b(es)914 b(.)554 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)
g(.)g(.)g(.)1235 b(10)4206 30109 y(1.3.5)1270 b(De\014ning)369
b(t)-31 b(yp)31 b(es)370 b(and)f(t)-31 b(yp)31 b(e)370
b(op)31 b(erators)980 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
1235 b(10)1660 31438 y(1.4)1133 b(V)-92 b(alues)370 b(and)f(P)-31
b(atterns)930 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(10)0 33873
y Fu(2)1024 b(High-Lev)-35 b(el)425 b(Language)37329
b(11)1660 35201 y Ft(2.1)1133 b(Primitiv)-31 b(es)599
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(11)1660 36530 y(2.2)1133 b(Expressing)370 b(Enco)31
b(dings)1000 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(11)0 38965
y Fu(3)1024 b(Deriv)-35 b(ed)426 b(F)-106 b(orms)425
b(and)f(Idioms)34234 b(14)1660 40293 y Ft(3.1)1133 b(Syn)-31
b(tactic)372 b(Sugar)495 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(14)4206 41622 y(3.1.1)1270 b(Pro)31 b(cess)368 b(abstractions)j(and)e
(a)h(functional)h(st)-31 b(yle)1086 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(14)4206 42950 y(3.1.2)1270 b(Declaration)371 b(v)-61
b(alues)369 b(and)g(applications)310 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)
g(.)g(.)g(.)g(.)1235 b(15)4206 44278 y(3.1.3)1270 b(V)-92
b(alue)370 b(declarations)884 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f
(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(15)4206
45607 y(3.1.4)1270 b(Other)369 b(syn)-31 b(tactic)371
b(sugar)996 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)
h(.)g(.)g(.)g(.)g(.)1235 b(15)4206 46935 y(3.1.5)1270
b(Matc)-31 b(hing)371 b(v)-61 b(arian)-31 b(ts)370 b(and)f(dynamic)i(v)
-61 b(alues)568 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(15)1660 48263 y(3.2)1133 b(Pro)31 b(cedures)1054 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(16)1660
49592 y(3.3)1133 b(Mobile)371 b(Agen)-31 b(ts)1138 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(17)1660 50920
y(3.4)1133 b(Lo)31 b(c)-31 b(ks,)370 b(Metho)31 b(ds)369
b(and)h(Distributed)f(Ob)61 b(jects)410 b(.)553 b(.)h(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
f(.)h(.)g(.)g(.)g(.)g(.)1235 b(17)1660 52249 y(3.5)1133
b(Higher-Order)369 b(F)-92 b(unctions)929 b(.)554 b(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(18)1660 53577 y(3.6)1133 b(Distributed)370 b(Comp)31
b(osite)371 b(Ev)-31 b(en)g(ts)355 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)f(.)
h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(19)0
56012 y Fu(4)1024 b(Example)425 b(Program)38940 b(21)1660
57341 y Ft(4.1)1133 b(High-Lev)-31 b(el)371 b(Arc)-31
b(hitecture)816 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(21)1660 58669
y(4.2)1133 b(Lo)-31 b(w-Lev)g(el)371 b(T)-92 b(ranslation)768
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
f(.)h(.)g(.)g(.)g(.)g(.)1235 b(24)4206 59997 y(4.2.1)1270
b(Algorithm)491 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(24)4206 61326 y(4.2.2)1270 b(The)369 b(top)h(lev)-31
b(el)770 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(24)4206 62654
y(4.2.3)1270 b(Lo)31 b(cation-indep)g(enden)-31 b(t)371
b(output)786 b(.)554 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)
g(.)1235 b(25)4206 63982 y(4.2.4)1270 b(Creation)398
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(27)4206
65311 y(4.2.5)1270 b(Migration)675 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
1235 b(28)25723 74521 y(1)p eop end
%%Page: 2 3
TeXDict begin 2 2 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e(Language)
37550 b Ft(2)0 1107 y Fu(5)1024 b(Compilation)425 b(and)g(Execution)
33786 b(30)1660 2435 y Ft(5.1)1133 b(T)-92 b(o)370 b(Get)f(Started)765
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(30)1660
3764 y(5.2)1133 b(Separate)370 b(Compilation)1053 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)
g(.)g(.)g(.)g(.)1235 b(30)1660 5092 y(5.3)1133 b(Language)371
b(T)-92 b(ranslations)623 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(31)1660 6420 y(5.4)1133 b(T)-92 b(rading)371 b(Names)e(and)h(V)-92
b(alues)1098 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
f(.)h(.)g(.)g(.)g(.)g(.)1235 b(32)1660 7749 y(5.5)1133
b(Con\014guring)371 b(the)f(System)1012 b(.)554 b(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(33)4206 9077 y(5.5.1)1270 b(Using)370 b(a)f(con\014g)h(\014le)1101
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)
g(.)g(.)g(.)g(.)1235 b(33)4206 10405 y(5.5.2)1270 b(Using)370
b(a)f(trader)1033 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(33)4206
11734 y(5.5.3)1270 b(Bo)31 b(otstrapping)371 b(the)f(system)701
b(.)554 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)
1235 b(34)0 14169 y Fu(6)1024 b(Syn)-35 b(tax)45230 b(35)1660
15497 y Ft(6.1)1133 b(Lexical)371 b(Rules)799 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(35)1660 16826
y(6.2)1133 b(Reserv)-31 b(ed)369 b(W)-92 b(ords)340 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(35)1660 18154
y(6.3)1133 b(Concrete)370 b(Syn)-31 b(tax)958 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(36)4206 19482 y(6.3.1)1270
b(Compilation)373 b(units)1009 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(36)4206
20811 y(6.3.2)1270 b(T)-92 b(op-lev)-31 b(el)371 b(declarations)915
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)
g(.)g(.)1235 b(36)4206 22139 y(6.3.3)1270 b(Declarations)284
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(36)4206 23468
y(6.3.4)1270 b(Abstractions)1031 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(37)4206 24796 y(6.3.5)1270 b(P)-31 b(atterns)468 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(37)4206 26124
y(6.3.6)1270 b(T)-31 b(yp)31 b(e)369 b(constrain)-31
b(ts)755 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(37)4206 27453 y(6.3.7)1270
b(Pro)31 b(cesses)884 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235
b(37)4206 28781 y(6.3.8)1270 b(V)-92 b(alues)578 b(.)554
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(38)4206 30109
y(6.3.9)1270 b(T)-31 b(yp)31 b(es)793 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)1235 b(39)4206 31438 y(6.3.10)717 b(Kinds)885
b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f
(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)1235 b(39)4206
32766 y(6.3.11)717 b(Lab)31 b(els)593 b(.)554 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g
(.)g(.)g(.)1235 b(39)0 35201 y Fu(Bibliograph)-35 b(y)43586
b(39)p eop end
%%Page: 3 4
TeXDict begin 3 3 bop 0 9963 a FA(Cop)-86 b(ying)0 15719
y Ft(Nomadic)416 b(Pict)g(is)e(cop)-31 b(yrigh)g(t)13489
15686 y(c)13181 15719 y Fr(\015)p Ft(1998{2006)419 b(b)-31
b(y)414 b(P)-31 b(a)g(w)g(e )-307 b(l)417 b(T.)e(W)-92
b(o)61 b(jciec)-31 b(ho)g(wski.)631 b(This)414 b(program)h(and)g(its)g
(do)31 b(cumen)-31 b(tation)0 17047 y(are)505 b(free)g(soft)-31
b(w)g(are;)576 b(y)-31 b(ou)506 b(can)g(redistribute)g(them)g(and/or)g
(mo)31 b(dify)507 b(them)f(under)f(the)h(terms)f(of)h(the)g(GNU)f
(General)0 18376 y(Public)441 b(License)f(as)g(published)h(b)-31
b(y)440 b(the)h(F)-92 b(ree)439 b(Soft)-31 b(w)g(are)442
b(F)-92 b(oundation;)478 b(either)440 b(v)-31 b(ersion)441
b(2)f(of)h(the)g(License,)458 b(or)440 b(\(at)h(y)-31
b(our)0 19704 y(option\))438 b(an)-31 b(y)436 b(later)g(v)-31
b(ersion.)692 b(Nomadic)438 b(Pict)e(is)g(distributed)g(in)g(the)g(hop)
31 b(e)435 b(that)i(it)f(will)i(b)31 b(e)435 b(useful,)452
b(but)436 b Fq(without)456 b(any)0 21032 y(warr)-57 b(anty)p
Ft(;)575 b(without)509 b(ev)-31 b(en)507 b(the)g(implied)i(w)-31
b(arran)g(t)g(y)509 b(of)e Fq(mer)-57 b(chantability)508
b Ft(or)f Fq(\014tness)522 b(for)h(a)f(p)-57 b(articular)522
b(purp)-57 b(ose)p Ft(.)905 b(See)0 22361 y(the)442 b(GNU)g(General)g
(Public)h(License)f(for)g(more)g(details.)713 b(Y)-92
b(ou)442 b(should)h(ha)-31 b(v)g(e)443 b(receiv)-31 b(ed)442
b(a)g(cop)-31 b(y)443 b(of)g(the)f(GNU)g(General)0 23689
y(Public)385 b(License)f(along)i(with)f(this)f(program;)393
b(if)385 b(not,)k(write)384 b(to)h(the)g(F)-92 b(ree)382
b(Soft)-31 b(w)g(are)386 b(F)-92 b(oundation,)390 b(Inc.,)e(675)e(Mass)
d(Av)-31 b(e,)0 25017 y(Cam)g(bridge,)372 b(MA)d(02139,)i(USA.)0
29495 y(Nomadic)g(Pict)f(is)f(a)-31 b(v)-61 b(ailable)372
b(electronically)g(from)e Fp
(http://www.cs.put.poznan.pl/pawelw/npict.html)25723
74521 y Ft(3)p eop end
%%Page: 4 5
TeXDict begin 4 4 bop 0 9963 a FA(Ac)-86 b(kno)g(wledgemen)g(ts)0
15719 y Ft(The)359 b(Nomadic)h(Pict)f(language)i(design)d(is)g(join)-31
b(t)360 b(w)-31 b(ork)360 b(with)f(P)-31 b(eter)359 b(Sew)-31
b(ell)360 b(and)e(Benjamin)i(C.)f(Pierce.)489 b(W)-92
b(e)358 b(o)-31 b(w)g(e)359 b(sp)31 b(ecial)0 17047 y(thanks)412
b(to)g(Benjamin)h(and)f(Da)-31 b(vid)413 b(N.)f(T)-92
b(urner)410 b(for)i(allo)-31 b(wing)415 b(us)c(to)h(use)f(the)h(source)
f(co)31 b(de)411 b(of)h(Pict.)621 b(W)-92 b(e)411 b(thank)h(Robin)0
18376 y(Milner)400 b(for)g(creating)h(a)f(motiv)-61 b(ating)404
b(en)-31 b(vironmen)g(t)402 b(for)e(in)-31 b(v)g(en)g(ting)402
b(a)f(new)f(language)i(in)e(the)g(predominan)-31 b(tly)403
b(Ja)-31 b(v)-61 b(a)401 b(and)0 19704 y(C)373 b(orien)-31
b(ted)374 b(w)-31 b(orld.)505 b(Robin)373 b(Milner's)h(past)f(and)g
(presen)-31 b(t)373 b(w)-31 b(ork)373 b(on)g(ML)g(and)g(the)g
Fo(\031)40 b Ft(-calculus)373 b(in)h(particular)g(is)f(strongly)0
21032 y(in)c(the)h(bac)-31 b(kground)370 b(of)g(this)g(pro)61
b(ject.)25723 74521 y(4)p eop end
%%Page: 5 6
TeXDict begin 5 5 bop 0 9963 a FA(F)-258 b(orew)-86 b(ord)0
15719 y Ft(The)339 b(primary)g(goal)h(of)g(the)e(Nomadic)j(Pict)f(pro)
61 b(ject,)346 b(b)31 b(egun)339 b(at)g(the)g(Univ)-31
b(ersit)g(y)340 b(of)f(Cam)-31 b(bridge)341 b(in)e(1996,)347
b(w)-31 b(as)339 b(to)g(design)0 17047 y(and)398 b(implemen)-31
b(t)401 b(a)e(lo)-31 b(w-lev)g(el)401 b(language)f(based)e(on)h(pro)31
b(cess)397 b(calculi)i(whic)-31 b(h)400 b(o\013ers)d(go)31
b(o)g(d)399 b(abstractions)h(for)e(distributed)0 18376
y(programming)347 b(\(with)f(thread)g(mobilit)-31 b(y\))348
b(in)d(a)g(system)g(where)g(mac)-31 b(hines)345 b(and)g(comm)-31
b(unication)349 b(links)c(ma)-31 b(y)346 b(crash.)484
b(This)0 19704 y(rep)31 b(ort)322 b(describ)31 b(es)321
b(the)h(syn)-31 b(tax)323 b(and)g(use)e(of)i(Nomadic)h(Pict)g(Release)e
(1.0)h({)g(the)f(\014rst)g(implemen)-31 b(tation)326
b(of)d(Nomadic)h(Pict,)0 21032 y(and)410 b(mak)-31 b(es)410
b(little)i(attempt)g(to)e(explain)h(or)e(motiv)-61 b(ate)412
b(the)e(Nomadic)i(Pict)e(language)i(design.)614 b(In)-31
b(terested)409 b(readers)g(are)0 22361 y(directed)422
b(to)g(the)f(de\014nition)i(of)f(the)g(Nomadic)h Fo(\031)40
b Ft(-calculus)422 b(of)f(Sew)-31 b(ell,)437 b(W)-92
b(o)61 b(jciec)-31 b(ho)g(wski,)437 b(and)422 b(Pierce)f([SWP99)r(],)
435 b(and)422 b(a)0 23689 y(brief)369 b(comparison)i(of)e(Nomadic)j
(Pict)e(with)g(similar)h(languages,)g(included)f(in)g([W)-92
b(o)61 b(j00a)r(].)1660 25017 y(The)341 b(implemen)-31
b(tation)344 b(of)d(Nomadic)h(Pict)f(describ)31 b(ed)339
b(here)h(is)g(built)h(on)f(Pict)i(of)e(Pierce)h(and)f(T)-92
b(uner[PT97a)r(,)341 b(PT97b)r(,)0 26346 y(T)-92 b(ur96)q(],)402
b(a)395 b(concurren)-31 b(t)395 b(\(but)h(not)g(distributed\))g
(language)i(based)c(on)i(the)f(async)-31 b(hronous)396
b Fo(\031)40 b Ft(-calculus[MPW92)r(,)395 b(HT91)r(,)0
27674 y(Bou92)r(])3367 27272 y Fn(1)3864 27674 y Ft(.)691
b(Pict)437 b(supp)31 b(orts)435 b(\014ne-grain)h(concurrency)f(and)h
(the)g(comm)-31 b(unication)439 b(of)d(async)-31 b(hronous)436
b(messages)g(b)31 b(et)-31 b(w)g(een)0 29002 y(parallel)309
b(threads.)472 b(W)-92 b(e)307 b(use)g(primitiv)-31 b(es)309
b(of)f(Pict)g(to)g(express)f(computation)j(within)f(an)f(agen)-31
b(t.)473 b(Nomadic)310 b(Pict)e(has)f(a)h(t)-31 b(w)g(o-)0
30331 y(lev)g(el)303 b(arc)-31 b(hitecture.)471 b(The)302
b(Lo)-31 b(w-Lev)g(el)303 b(Nomadic)g(Pict)g(extends)f(Pict)g(with)h
(primitiv)-31 b(es)304 b(for)d(agen)-31 b(t)303 b(creation,)317
b(migration)304 b(of)0 31659 y(agen)-31 b(ts)298 b(b)31
b(et)-31 b(w)g(een)298 b(sites,)312 b(and)297 b(comm)-31
b(unication)301 b(of)d(lo)31 b(cation-dep)g(enden)-31
b(t)299 b(async)-31 b(hronous)298 b(messages)f(b)31 b(et)-31
b(w)g(een)298 b(agen)-31 b(ts.)470 b(The)0 32987 y(high-lev)-31
b(el)451 b(language)f(adds)f(lo)31 b(cation-indep)g(enden)-31
b(t)452 b(comm)-31 b(unication)452 b({)d(an)g(arbitrary)g(distributed)g
(infrastructure)g(to)0 34316 y(supp)31 b(ort)358 b(this)h(comm)-31
b(unication)362 b(can)d(b)31 b(e)358 b(expressed)f(as)h(a)h
(user-de\014ned)e(translation)k(in)-31 b(to)359 b(the)g(lo)-31
b(w-lev)g(el)361 b(language.)492 b(The)0 35644 y(translation)379
b(enco)31 b(ding)378 b(de\014nes)f(actual)h(prop)31 b(erties)377
b(of)g(the)h(system)f(\(e.g.)517 b(as)377 b(for)g(robustness)f(and)i
(tolerance)g(to)g(system)0 36972 y(failures\).)786 b(Nomadic)469
b(Pict)f(has)e(a)h(standardised)g(lo)-31 b(w-lev)g(el)470
b(run)-31 b(time)467 b(system)g(that)h(is)f(common)h(to)f(man)-31
b(y)468 b(mac)-31 b(hines,)0 38301 y(with)360 b(div)-31
b(ergen)g(t)360 b(high-lev)-31 b(el)360 b(facilities)h(c)-31
b(hosen)359 b(and)f(installed)i(on)f(demand.)490 b(It)358
b(has)h(b)31 b(een)358 b(implemen)-31 b(ted)360 b(in)f(O'Caml.)491
b(In)0 39629 y(principle,)370 b(it)g(should)g(run)e(on)i(an)-31
b(y)370 b(platform)h(that)f(O'Caml)i(supp)31 b(orts.)1660
40958 y(This)375 b(do)31 b(cumen)-31 b(t)376 b(is)e(not)h(in)-31
b(tended)376 b(as)e(a)h(tutorial)i(on)d(distributed)i(programming)g
(with)g(mobilit)-31 b(y)-92 b(,)379 b(but)c(no)g(previous)0
42286 y(exp)31 b(erience)404 b(in)i(distributed)f(programming)i(is)e
(required.)599 b(Ho)-31 b(w)g(ev)g(er,)416 b(w)-31 b(e)405
b(do)g(assume)g(some)g(familiarit)-31 b(y)409 b(with)d(the)f(Pict)0
43614 y(language)444 b(syn)-31 b(tax)442 b(and)g(concurren)-31
b(t)442 b(programming)i(in)e(the)g(st)-31 b(yle)442 b(of)g(the)g
Fo(\031)40 b Ft(-calculus.)711 b(Readers)440 b(who)j(\014nd)e(it)i
(hard)e(to)0 44943 y(understand)320 b(the)h(language)h(notation)h(and)d
(examples)i(included)e(in)h(this)g(do)31 b(cumen)-31
b(t)321 b(should)f(b)31 b(egin)321 b(with)h(the)e(tutorial)j(on)0
46271 y(Pict)361 b(programming[PT97c)5 b(].)489 b(Belo)-31
b(w,)364 b(w)-31 b(e)361 b(outline)g(the)f(con)-31 b(ten)g(ts)361
b(of)g(this)f(rep)31 b(ort.)489 b(After)360 b(a)g(small)i(example)f
(illustrating)0 47599 y(the)432 b(principles)g(of)g(distributed)g
(programming)i(in)e(our)f(system,)448 b(Chapter)433 b(1)e(describ)31
b(es)431 b(the)h(primitiv)-31 b(es)433 b(of)f(Lo)-31
b(w-Lev)g(el)0 48928 y(Nomadic)447 b(Pict.)721 b(Chapter)446
b(2)f(then)g(de\014nes)f(High-Lev)-31 b(el)447 b(Nomadic)g(Pict)f(and)f
(the)g(language)i(for)e(expressing)g(transla-)0 50256
y(tions)403 b(from)f(high-)g(to)h(lo)-31 b(w-lev)g(el.)593
b(Chapter)402 b(3)g(discusses)f(deriv)-31 b(ed)402 b(language)h(forms)f
(and)g(useful)g(programming)i(idioms.)0 51584 y(Chapter)g(4)g(giv)-31
b(es)405 b(a)f(small)h(example)g(application)i(in)d(Nomadic)h(Pict,)414
b(illustrating)406 b(the)e(expressiv)-31 b(e)404 b(p)31
b(o)-31 b(w)g(er)404 b(of)g(the)g(lan-)0 52913 y(guage,)344
b(and)336 b(presen)-31 b(ts)335 b(an)h(example)h(comm)-31
b(unication)340 b(infrastructure)c(enco)31 b(ding.)482
b(Chapter)337 b(5)f(explains)h(ho)-31 b(w)337 b(to)f(compile)0
54241 y(and)400 b(execute)h(Nomadic)g(Pict)h(programs.)585
b(Chapter)401 b(6)f(presen)-31 b(ts)399 b(the)h(concrete)h(syn)-31
b(tax.)586 b(Libraries)399 b(are)h(describ)31 b(ed)399
b(in)i(a)0 55569 y(separate)370 b(do)31 b(cumen)-31 b(t[W)-92
b(o)61 b(j00b)s(].)p 0 67016 20800 45 v 1232 67731 a
Fm(1)1694 68044 y Fl(W)-78 b(e)452 b(extended)g(the)h(original)h(Pict)f
(compiler)h(and)f(p)26 b(orted)452 b(man)-26 b(y)453
b(of)g(Pict)g(libraries.)836 b(It)453 b(should)g(b)26
b(e)453 b(p)26 b(ossible)453 b(to)h(compile)g(Pict-4.*)0
69096 y(programs)372 b(\(mo)26 b(dulo)372 b(libraries\))h(and)e
(execute)h(them)f(in)g(the)h(Nomadic)g(Pict)g(run)-26
b(time)371 b(system.)592 b(The)371 b(Pict)g(source)h(co)26
b(de)372 b(is)g(a)-26 b(v)-52 b(ailable)373 b(from)0
70147 y Fk(httl://www.cis.upenn.edu/)247 b(~)236 b(bcpierce)343
b Fl(and)d(distributed)f(under)g(the)h(terms)g(of)g(the)f(GNU)h
(General)g(Public)g(License)h(as)f(published)g(b)-26
b(y)0 71199 y(the)313 b(F)-78 b(ree)314 b(Soft)-26 b(w)g(are)312
b(F)-78 b(oundation.)25723 74521 y Ft(5)p eop end
%%Page: 6 7
TeXDict begin 6 6 bop 0 9409 a Fj(Chapter)861 b(1)0 14944
y FA(Lo)-86 b(w-Lev)g(el)1031 b(Language)0 20700 y Ft(The)362
b(Nomadic)i(Pict)f(language)i(has)d(a)g(t)-31 b(w)g(o-lev)g(el)365
b(arc)-31 b(hitecture.)492 b(Lo)-31 b(w-Lev)g(el)363
b(Nomadic)h(Pict)f(extends)g(Pict)g(with)g(primi-)0 22029
y(tiv)-31 b(es)381 b(for)f(agen)-31 b(t)382 b(creation,)j(migration)d
(of)f(agen)-31 b(ts)381 b(b)31 b(et)-31 b(w)g(een)381
b(sites,)j(and)c(comm)-31 b(unication)384 b(of)d(lo)31
b(cation-dep)g(enden)-31 b(t)383 b(asyn-)0 23357 y(c)-31
b(hronous)401 b(messages)g(b)31 b(et)-31 b(w)g(een)401
b(agen)-31 b(ts.)589 b(The)401 b(high-lev)-31 b(el)402
b(language)h(adds)e(lo)31 b(cation-indep)g(enden)-31
b(t)404 b(comm)-31 b(unication;)421 b(an)0 24685 y(arbitrary)332
b(distributed)h(infrastructure)f(to)h(supp)31 b(ort)331
b(this)i(comm)-31 b(unication)335 b(can)d(b)31 b(e)332
b(expressed)e(as)i(a)g(user-de\014ned)f(trans-)0 26014
y(lation)349 b(in)-31 b(to)348 b(the)f(lo)-31 b(w-lev)g(el)350
b(language)f(using)e(the)g(mo)31 b(dularisation)350 b(facilities)f(of)e
(the)g(language.)488 b(It)346 b(is)h(p)31 b(ossible)347
b(to)h(deplo)-31 b(y)0 27342 y(suc)g(h)369 b(infrastructure)g
(dynamically)j(using)e(migration.)1660 28560 y(W)-92
b(e)403 b(b)31 b(egin)403 b(with)h(a)f(simple)h(example.)595
b(Belo)-31 b(w)404 b(is)f(a)g(program)h(in)f(the)g(lo)-31
b(w-lev)g(el)406 b(language)f(sho)-31 b(wing)405 b(ho)-31
b(w)403 b(an)h(applet)0 29777 y(serv)-31 b(er)272 b(can)h(b)31
b(e)273 b(expressed.)459 b(It)273 b(can)g(receiv)-31
b(e)273 b(\(on)h(the)f(c)-31 b(hannel)274 b(named)g Fp(getApplet)p
Ft(\))g(requests)e(for)h(an)h(applet;)306 b(the)274 b(requests)0
30995 y(con)-31 b(tain)371 b(a)f(pair)f(\(b)31 b(ound)370
b(to)g Fp(a)f Ft(and)g Fp(s)p Ft(\))h(consisting)g(of)g(the)g(name)g
(of)f(the)h(requesting)f(agen)-31 b(t)371 b(and)f(the)f(name)h(of)g
(its)f(site.)10461 33098 y Fi(getApplet)523 b(?*)g([a)g(s])g(=)11507
34316 y(agent)g(b)g(=)13076 35533 y(migrate)g(to)g(s)13076
36751 y(\()g(ack!b)1046 b(|)g(...)523 b(\))11507
37969 y(in)g(\(\))0 40183 y Ft(When)462 b(a)h(request)f(is)g(receiv)-31
b(ed)463 b(the)g(serv)-31 b(er)461 b(creates)i(an)f(applet)i(agen)-31
b(t)464 b(with)g(a)e(new)h(name)g(b)31 b(ound)463 b(to)g
Fp(b)p Ft(.)772 b(This)463 b(agen)-31 b(t)0 41511 y(immediately)514
b(migrates)e(to)g(site)f Fp(s)p Ft(.)918 b(It)511 b(then)g(sends)f(an)h
(ac)-31 b(kno)g(wledgemen)g(t)514 b(to)e(the)f(requesting)h(agen)-31
b(t)512 b Fp(a)f Ft(\(whic)-31 b(h)512 b(is)0 42839 y(assumed)348
b(to)g(b)31 b(e)347 b(on)h(site)g Fp(s)p Ft(\))g(con)-31
b(taining)350 b(its)e(name.)486 b(In)347 b(parallel,)354
b(the)348 b(b)31 b(o)g(dy)348 b Fp(...)485 b Ft(of)348
b(the)g(applet)h(commences)f(execution.)1660 44168 y(The)437
b(example)h(illustrates)g(the)f(main)g(en)-31 b(tities)439
b(of)e(the)f(language:)630 b(sites,)454 b(agen)-31 b(ts)437
b(and)g(c)-31 b(hannels.)695 b Fq(Sites)527 b Ft(should)437
b(b)31 b(e)0 45496 y(though)-31 b(t)293 b(of)g(as)e(ph)-31
b(ysical)293 b(mac)-31 b(hines)293 b(or,)307 b(more)292
b(accurately)-92 b(,)309 b(as)291 b(instan)-31 b(tiations)295
b(of)d(the)g(Nomadic)i(Pict)e(run)-31 b(time)293 b(system)f(on)0
46824 y(mac)-31 b(hines;)353 b(eac)-31 b(h)344 b(site)f(has)g(a)g
(unique)h(name.)484 b(Sites)344 b(are)f(unstructured;)351
b(neither)344 b(net)-31 b(w)g(ork)344 b(top)31 b(ology)346
b(nor)d(administrativ)-31 b(e)0 48153 y(domains)284 b(are)e(represen)
-31 b(ted)281 b(in)i(the)g(language.)466 b Fq(A)-57 b(gents)373
b Ft(are)282 b(units)h(of)g(executing)h(co)31 b(de;)311
b(an)283 b(agen)-31 b(t)284 b(has)e(a)h(unique)f(name)i(and)0
49481 y(a)365 b(b)31 b(o)g(dy)364 b(consisting)i(of)f(some)g(Nomadic)h
(Pict)g(pro)31 b(cess;)365 b(at)h(an)-31 b(y)365 b(momen)-31
b(t)366 b(it)f(is)g(lo)31 b(cated)366 b(at)f(a)g(particular)g(site.)492
b Fq(Channels)0 50809 y Ft(supp)31 b(ort)466 b(comm)-31
b(unication)471 b(within)e(agen)-31 b(ts,)492 b(and)467
b(also)h(pro)-31 b(vide)468 b(targets)f(for)g(in)-31
b(ter-agen)g(t)469 b(comm)-31 b(unication|an)471 b(in)-31
b(ter-)0 52138 y(agen)g(t)379 b(message)e(will)i(b)31
b(e)377 b(sen)-31 b(t)378 b(to)g(a)f(particular)i(c)-31
b(hannel)378 b(within)h(the)e(destination)j(agen)-31
b(t.)518 b(Channels)378 b(also)g(ha)-31 b(v)g(e)378 b(unique)0
53466 y(names.)505 b(The)373 b(language)i(is)e(built)h(ab)31
b(o)-31 b(v)g(e)374 b(async)-31 b(hronous)374 b(messaging,)i(b)31
b(oth)373 b(within)i(and)e(b)31 b(et)-31 b(w)g(een)374
b(sites;)i(in)d(the)g(curren)-31 b(t)0 54795 y(implemen)g(tation)506
b(in)-31 b(ter-site)502 b(messages)g(are)f(sen)-31 b(t)501
b(on)h(TCP)g(connections,)536 b(created)502 b(on)f(demand,)536
b(but)501 b(when)h(writing)0 56123 y(Nomadic)438 b(Pict)f(programs)g(y)
-31 b(ou)436 b(should)h Fq(not)541 b Ft(dep)31 b(end)435
b(on)h(the)h(message)f(ordering)h(that)g(could)g(b)31
b(e)435 b(pro)-31 b(vided)437 b(b)-31 b(y)436 b(TCP)-92
b(.)0 57451 y(The)350 b(in)-31 b(ter-agen)g(t)352 b(message)e
Fp(ack!b)h Ft(is)f(c)-31 b(haracteristic)351 b(of)f(the)g(lo)-31
b(w-lev)g(el)353 b(language.)488 b(It)350 b(is)f(lo)31
b(cation-dep)g(enden)-31 b(t|if)0 58780 y(agen)g(t)370
b Fp(a)e Ft(is)g(in)g(fact)h(on)f(site)h Fp(s)f Ft(then)g(the)g
(message)h Fp(b)f Ft(will)i(b)31 b(e)367 b(deliv)-31
b(ered,)370 b(to)f(c)-31 b(hannel)369 b Fp(ack)f Ft(in)g
Fp(a)p Ft(;)h(otherwise)g(the)f(message)0 60108 y(will)484
b(b)31 b(e)482 b(discarded.)833 b(In)482 b(the)h(implemen)-31
b(tation)486 b(at)e(most)f(one)g(in)-31 b(ter-site)484
b(message)f(is)f(sen)-31 b(t.)833 b(Belo)-31 b(w)484
b(w)-31 b(e)483 b(describ)31 b(e)482 b(the)0 61436 y(primitiv)-31
b(es)371 b(of)f(the)f(lo)-31 b(w-lev)g(el)372 b(language.)0
65097 y Fy(1.1)1793 b(Primitiv)-50 b(es)0 67521 y Ft(W)-92
b(e)301 b(will)j(in)-31 b(tro)31 b(duce)303 b(the)g(lo)-31
b(w-lev)g(el)305 b(primitiv)-31 b(es)304 b(in)f(groups.)470
b(They)303 b(fall)g(in)-31 b(to)304 b(t)-31 b(w)g(o)304
b(main)g(syn)-31 b(tactic)304 b(categories)f(of)g Fq(pr)-57
b(o)g(c)g(esses)0 68850 y Ft(and)360 b Fq(de)-57 b(clar)g(ations)p
Ft(.)489 b(A)360 b(program)h(is)e(simply)i(a)f(series)f(of)h
(declarations,)k(whic)-31 b(h)360 b(ma)-31 b(y)361 b(con)-31
b(tain)362 b(pro)31 b(cesses.)488 b(F)-92 b(or)359 b(simplicit)-31
b(y)-92 b(,)0 70178 y(w)-31 b(e)478 b(confuse)f(other)h(syn)-31
b(tactic)479 b(categories)g(suc)-31 b(h)477 b(as)g(abstractions,)506
b(patterns,)f(v)-61 b(alues,)505 b(paths,)h(t)-31 b(yp)31
b(es,)505 b(and)477 b(constan)-31 b(ts.)25723 74521 y(6)p
eop end
%%Page: 7 8
TeXDict begin 7 7 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e(Language)
37550 b Ft(7)0 1107 y(Some)338 b(of)f(them)h(are)e(describ)31
b(ed)337 b(informally)i(in)e(follo)-31 b(wing)341 b(sections.)482
b(Chapter)338 b(6)f(con)-31 b(tains)339 b(a)e(complete)i(de\014nition)f
(of)g(the)0 2435 y(concrete)369 b(syn)-31 b(tax)371 b(in)e(a)h
(notation)h(similar)g(to)f(the)f(Bac)-31 b(kus-Naur)370
b(F)-92 b(orm.)0 5528 y Fh(1.1.1)1495 b(Declarations)0
7571 y Ft(Declarations)523 b Fp(D)e Ft(include)h(de\014nitions)h(of)f
(t)-31 b(yp)31 b(es,)560 b(c)-31 b(hannels,)561 b(pro)31
b(cess)520 b(abstractions,)561 b(agen)-31 b(ts,)561 b(and)522
b(also)g(a)g(migration)0 8899 y(primitiv)-31 b(e.)6109
11225 y Fp(type)581 b(T)h(=)f(T')13499 b Ft(t)-31 b(yp)31
b(e)370 b(abbreviation)6109 12554 y Fp(new)581 b(c:T)h(P)14661
b Ft(new)369 b(c)-31 b(hannel)371 b(name)e(creation)6109
13882 y Fp(agent)582 b(a=P)f(and)h(...)1163 b(and)581
b(a'=P')h(in)f(Q)714 b Ft(agen)-31 b(t)371 b(creation)6109
15210 y Fp(migrate)582 b(to)f(s)h(P)11755 b Ft(agen)-31
b(t)371 b(migration)6109 16539 y Fp(def)581 b(f[...]=P)i(and)e(...)1163
b(and)582 b(f'[...]=P')g(Q)26000 17867 y Ft(pro)31 b(cess)368
b(abstraction)0 20215 y(The)522 b(declaration)i Fp(typeT)582
b(=)f(T')h(P)522 b Ft(in)-31 b(tro)31 b(duces)522 b(a)g(new)g(name)h
Fp(T)e Ft(for)h(complex)i(t)-31 b(yp)31 b(e)522 b Fp(T')p
Ft(.)h(Execution)g(of)g Fi(new)g(c:^T)g(P)0 21543 y Ft(creates)447
b(a)g(new)g(unique)g(c)-31 b(hannel)447 b(name)h(for)e(carrying)i(v)-61
b(alues)447 b(of)g(t)-31 b(yp)31 b(e)447 b Fp(T)p Ft(;)g
Fp(c)g Ft(is)f(binding)i(in)f Fp(P)p Ft(.)g(The)g(execution)h(of)g(the)
0 22872 y(construct)344 b Fp(agent)581 b(a=P)h(in)g(Q)343
b Ft(spa)-31 b(wns)343 b(a)h(new)f(agen)-31 b(t)345 b(on)e(the)h
(curren)-31 b(t)342 b(site,)350 b(with)344 b(b)31 b(o)g(dy)343
b Fp(P)p Ft(.)h(After)f(the)h(creation,)350 b(pro)31
b(cess)0 24200 y Fp(Q)404 b Ft(commences)h(execution,)415
b(in)405 b(parallel)g(with)h(the)e(rest)g(of)h(the)f(b)31
b(o)g(dy)405 b(of)f(the)h(spa)-31 b(wning)406 b(agen)-31
b(t.)599 b(The)404 b(new)h(agen)-31 b(t)405 b(has)g(a)0
25528 y(unique)424 b(name)g(whic)-31 b(h)424 b(ma)-31
b(y)424 b(b)31 b(e)423 b(referred)f(to)i(b)31 b(oth)423
b(in)h(its)g(b)31 b(o)g(dy)423 b(and)g(in)h(the)f(spa)-31
b(wning)425 b(agen)-31 b(t)425 b(\(i.e.)656 b Fp(a)423
b Ft(is)g(binding)h(in)g Fp(P)0 26857 y Ft(and)387 b
Fp(Q)p Ft(\).)h(A)g(group)f(of)h(agen)-31 b(t)388 b(de\014nitions)h(in)
-31 b(tro)31 b(duced)387 b(b)-31 b(y)388 b Fp(agent)f
Ft(and)h(separated)f(b)-31 b(y)388 b Fp(and)f Ft(can)g(b)31
b(e)387 b(m)-31 b(utually)390 b(recursiv)-31 b(e,)0 28185
y(i.e.)492 b(eac)-31 b(h)367 b(of)f(the)g(b)31 b(o)g(dies)366
b Fp(P)g Ft(can)g(refer)f(to)i(an)-31 b(y)367 b(of)f(the)g(de\014ned)g
(agen)-31 b(t)367 b(names.)492 b(Agen)-31 b(ts)367 b(can)f(migrate)i
(to)e(named)h(sites)f(|)0 29513 y(the)402 b(execution)i(of)f
Fp(migrate)582 b(to)f(s)g(P)402 b Ft(as)h(part)f(of)h(an)f(agen)-31
b(t)404 b(results)d(in)i(the)f(whole)h(agen)-31 b(t)404
b(migrating)h(to)e(site)f Fp(s)p Ft(.)592 b(After)0 30842
y(the)409 b(migration,)423 b(pro)31 b(cess)408 b Fp(P)h
Ft(commences)h(execution)g(in)g(parallel)h(with)f(the)f(rest)g(of)h
(the)f(b)31 b(o)g(dy)409 b(of)h(the)f(agen)-31 b(t.)614
b(The)410 b Fp(def)0 32170 y Ft(declarations)373 b(are)d(used)g(to)i
(de\014ne)e(pro)31 b(cess)370 b(abstractions)i(\(i.e.)498
b(pro)31 b(cess)370 b(expressions)g(pre\014xed)g(b)-31
b(y)371 b(patterns\);)i(they)e(are)0 33499 y(describ)31
b(ed)368 b(in)i(Chapter)g(3.)0 36591 y Fh(1.1.2)1495
b(Pro)42 b(cesses)0 38634 y Ft(Pro)31 b(cesses)368 b
Fp(P,Q,...)493 b Ft(form)370 b(a)f(separate)h(syn)-31
b(tactic)371 b(category)-92 b(.)8471 40960 y Fp(\(P)581
b(|)h(Q\))11099 b Ft(parallel)371 b(comp)31 b(osition)8471
42288 y Fp(\(D)581 b(P\))12262 b Ft(lo)31 b(cal)370 b(declaration)8471
43617 y Fp(\(\))14005 b Ft(n)-31 b(ull)370 b(pro)31 b(cess)0
45965 y(The)452 b(b)31 b(o)g(dy)451 b(of)h(an)f(agen)-31
b(t)453 b(ma)-31 b(y)453 b(consist)e(of)h(man)-31 b(y)453
b(pro)31 b(cess)450 b(terms)h(in)h(parallel,)474 b(i.e.)740
b(essen)-31 b(tially)453 b(of)f(man)-31 b(y)452 b(ligh)-31
b(t)g(w)g(eigh)g(t)0 47182 y(threads.)472 b(They)309
b(will)g(in)-31 b(teract)310 b(only)f(b)-31 b(y)308 b(message)g
(passing.)473 b(W)-92 b(e)307 b(can)i(write)f(a)h(comp)31
b(osition)310 b(of)f(more)f(than)h(t)-31 b(w)g(o)309
b(pro)31 b(cesses)0 48400 y(as)318 b Fp(\(P1)582 b(|)f(...)1163
b(|)581 b(Pn\))p Ft(.)476 b(Large)318 b(programs)h(often)g(con)-31
b(tain)320 b(pro)31 b(cesses)316 b(with)k(long)f(sequences)e(of)i
(declarations)h(lik)-31 b(e)319 b Fp(\(new)0 49618 y(x1:T1)582
b(...)1163 b(\(new)581 b(x2:T2)h(P\)\))p Ft(.)456 b(W)-92
b(e)455 b(can)h(a)-31 b(v)g(oid)457 b(man)-31 b(y)456
b(nested)g(paren)-31 b(theses)455 b(and)g(simply)i(write)f
Fp(\(new)582 b(x1:T1)g(...)0 50835 y(new)g(x2:T2)f(P\))p
Ft(.)395 b(In)e(sequences)g(of)i(declarations,)402 b(it)394
b(is)g(con)-31 b(v)g(enien)g(t)396 b(to)f(start)f(some)g(pro)31
b(cess)393 b(running)h(in)g(parallel)i(with)0 52053 y(the)442
b(ev)-61 b(aluation)444 b(of)e(the)g(reminder)f(of)h(the)g
(declarations.)711 b(W)-92 b(e)441 b(can)h(use)f(the)h(Pict)g
(declaration)i(k)-31 b(eyw)g(ord)443 b Fp(run)f Ft(for)f(this)0
53271 y(purp)31 b(ose,)369 b(e.g.)493 b(a)370 b(program)8369
55344 y Fi(\(new)523 b(x:T)8892 56562 y(run)g(print!"Hello")8892
57780 y(new)g(y:T)8892 58997 y(P\))0 61182 y Ft(will)371
b(b)31 b(e)369 b(transformed)g(in)-31 b(to)371 b Fp(\(new)582
b(x:T)f(\(print!"Hello")j(|)d(\(new)h(y:T)f(P\)\)\))8471
63539 y(c!v)13424 b Ft(output)370 b Fp(v)f Ft(on)h(c)-31
b(hannel)370 b Fp(c)f Ft(in)g(the)h(curren)-31 b(t)369
b(agen)-31 b(t)8471 64867 y Fp(c?p)582 b(=)f(P)11099
b Ft(input)370 b(from)f(c)-31 b(hannel)371 b Fp(c)8471
66195 y(c?*p)582 b(=)f(P)10518 b Ft(replicated)370 b(input)g(from)g(c)
-31 b(hannel)370 b Fp(c)8471 67524 y(if)581 b(v)h(then)f(P)h(else)f(Q)
4707 b Ft(conditional)0 69872 y(T)-92 b(o)493 b(express)f(computation)j
(within)g(an)e(agen)-31 b(t,)525 b(while)494 b(k)-31
b(eeping)494 b(a)f(ligh)-31 b(t)g(w)g(eigh)g(t)497 b(implemen)-31
b(tation)497 b(and)c(seman)-31 b(tics,)525 b(w)-31 b(e)0
71200 y(include)328 b Fo(\031)40 b Ft(-calculus-st)-31
b(yle)328 b(in)-31 b(teraction)329 b(primitiv)-31 b(es)329
b(of)e(Pict.)480 b(An)327 b(output)h Fp(c!v)f Ft(\(of)h(v)-61
b(alue)327 b Fp(v)g Ft(on)g(c)-31 b(hannel)328 b Fp(c)p
Ft(\))f(and)g(an)g(input)p eop end
%%Page: 8 9
TeXDict begin 8 8 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e(Language)
37550 b Ft(8)0 1107 y Fp(c?p=P)389 b Ft(in)g(the)g(same)g(agen)-31
b(t)390 b(ma)-31 b(y)390 b(matc)-31 b(h,)395 b(resulting)390
b(in)f Fp(P)f Ft(with)i(the)f(appropriate)h(parts)f(of)g(the)g(v)-61
b(alue)389 b Fp(v)g Ft(b)31 b(ound)388 b(to)i(the)0 2435
y(formal)400 b(parameters)g(in)f(the)g(pattern)h Fp(p)p
Ft(.)582 b(The)399 b(comm)-31 b(unication)403 b(is)398
b(async)-31 b(hronous,)408 b(i.e.)582 b(the)399 b(output)i(is)d(nev)-31
b(er)399 b(blo)31 b(c)-31 b(k)g(ed.)0 3764 y(The)383
b(implemen)-31 b(tation)388 b(uses)382 b(lo)31 b(cal)384
b(en)-31 b(vironmen)g(ts)385 b(to)f(store)f(bindings)h(of)f(parameters)
h(to)f(actual)i(v)-61 b(alues.)535 b(A)383 b(replicated)0
5092 y(input)339 b Fp(c?*p=P)g Ft(b)31 b(eha)-31 b(v)g(es)338
b(similarly)i(except)f(that)g(it)g(p)31 b(ersists)337
b(after)i(the)f(matc)-31 b(hing,)347 b(and)338 b(so)g(ma)-31
b(y)340 b(receiv)-31 b(e)338 b(another)h(v)-61 b(alue.)0
6420 y(In)369 b(b)31 b(oth)369 b Fp(c?p=P)h Ft(and)g
Fp(c?*p=P)f Ft(the)h(names)f(in)h Fp(p)f Ft(are)g(binding)h(in)g
Fp(P)p Ft(.)6109 8719 y Fp(iflocal)582 b(c!v)g(then)g(P)f(else)h(Q)
3619 b Ft(test-and-send)370 b(to)g(agen)-31 b(t)370 b
Fp(a)f Ft(on)h(this)f(site)6109 10048 y Fp(c!v)16405
b Ft(send)369 b(to)h(agen)-31 b(t)370 b Fp(a)f Ft(on)h(this)f(site)6109
11376 y Fp(c!v)15243 b Ft(send)369 b(to)h(agen)-31
b(t)370 b Fp(a)f Ft(on)h(site)f Fp(s)6109 12704 y(wait)581
b(c?p=P)h(timeout)h(t)e(->)g(Q)5363 b Ft(input)370 b(with)g(timeout)0
14994 y(Finally)-92 b(,)345 b(the)338 b(lo)-31 b(w-lev)g(el)340
b(language)g(includes)d(primitiv)-31 b(es)339 b(for)f(in)-31
b(teraction)340 b(b)31 b(et)-31 b(w)g(een)338 b(agen)-31
b(ts.)483 b(The)337 b(execution)i(of)f Fp(iflocal)0 16323
y(c!v)582 b(then)g(P)f(else)h(Q)457 b Ft(in)g(the)g(b)31
b(o)g(dy)457 b(of)h(an)f(agen)-31 b(t)458 b Fp(b)f Ft(has)g(t)-31
b(w)g(o)459 b(p)31 b(ossible)457 b(outcomes.)758 b(If)457
b(agen)-31 b(t)458 b Fp(a)f Ft(is)g(on)g(the)g(same)0
17651 y(site)365 b(as)f Fp(b)p Ft(,)i(then)e(the)h(message)f
Fp(c!v)h Ft(will)h(b)31 b(e)364 b(deliv)-31 b(ered)365
b(to)g Fp(a)f Ft(\(where)g(it)h(ma)-31 b(y)366 b(later)f(in)-31
b(teract)366 b(with)f(an)g(input\))g(and)g Fp(P)f Ft(will)0
18980 y(commence)352 b(execution)h(in)f(parallel)h(with)f(the)g(rest)e
(of)i(the)g(b)31 b(o)g(dy)351 b(of)h Fp(b)p Ft(;)357
b(otherwise)352 b(the)g(message)g(will)h(b)31 b(e)350
b(discarded,)356 b(and)0 20308 y Fp(Q)346 b Ft(will)h(execute)g(as)e
(part)i(of)f Fp(b)p Ft(.)485 b(The)346 b(construct)g(is)g(analogous)i
(to)f(test-and-set)g(op)31 b(erations)347 b(in)f(shared)f(memory)i
(systems)0 21636 y(|)368 b(deliv)-31 b(ering)370 b(the)e(message)g(and)
h(starting)g Fp(P)p Ft(,)f(or)g(discarding)h(it)g(and)f(starting)i
Fp(Q)p Ft(,)e(atomically)-92 b(.)496 b(The)368 b(test-and-send)h(can)0
22965 y(greatly)334 b(simplify)g(algorithms)g(that)g(in)-31
b(v)g(olv)g(e)335 b(comm)-31 b(unication)336 b(with)d(agen)-31
b(ts)333 b(that)h(ma)-31 b(y)333 b(migrate)h(a)-31 b(w)g(a)g(y)335
b(at)e(an)-31 b(y)333 b(time,)341 b(y)-31 b(et)0 24293
y(is)289 b(still)h(implemen)-31 b(ted)290 b(lo)31 b(cally)-92
b(,)308 b(b)-31 b(y)288 b(the)h(run)-31 b(time)290 b(system)f(on)g(eac)
-31 b(h)289 b(site.)466 b(Tw)-31 b(o)290 b(other)f(useful)f(constructs)
h(can)g(b)31 b(e)288 b(expressed)0 25621 y(in)283 b(the)h(language)h
(in)-31 b(tro)31 b(duced)284 b(so)f(far)g(\(using)h(migration,)303
b(agen)-31 b(t)285 b(creation,)302 b(and)283 b(test-and-send\):)451
b Fp(c!v)283 b Ft(and)h Fp(c!v)0 26950 y Ft(attempt)438
b(to)f(deliv)-31 b(er)437 b Fp(c!v)f Ft(to)h(agen)-31
b(t)437 b Fp(a)p Ft(,)453 b(on)437 b(the)f(curren)-31
b(t)435 b(site)i(and)f(on)g Fp(s)g Ft(resp)31 b(ectiv)-31
b(ely)-92 b(.)694 b(They)436 b(fail)i(silen)-31 b(tly)438
b(if)e Fp(a)g Ft(is)g(not)0 28278 y(where)387 b(exp)31
b(ected)386 b(and)h(so)g(are)g(usually)h(used)e(only)h(where)g
Fp(a)g Ft(is)f(predictable.)547 b(F)-92 b(or)386 b(implemen)-31
b(ting)390 b(infrastructures)d(that)0 29606 y(are)369
b(robust)g(under)f(some)h(lev)-31 b(el)371 b(of)e(failure,)i(or)e(supp)
31 b(ort)368 b(disconnected)i(op)31 b(eration,)371 b(some)e(timed)i
(primitiv)-31 b(e)371 b(is)e(required.)0 30935 y(The)316
b(lo)-31 b(w-lev)g(el)319 b(language)e(includes)g(a)f(single)g(timed)h
(input)g(as)e(ab)31 b(o)-31 b(v)g(e,)328 b(with)317 b(timeout)h(v)-61
b(alue)316 b Fp(n)p Ft(.)475 b(If)316 b(a)g(message)g(on)g(c)-31
b(hannel)0 32263 y Fp(c)393 b Ft(is)g(receiv)-31 b(ed)393
b(within)h Fp(n)f Ft(seconds)g(then)g Fp(P)f Ft(will)j(b)31
b(e)392 b(started)i(as)f(in)g(a)g(normal)h(input,)400
b(otherwise)394 b Fp(Q)f Ft(will)h(b)31 b(e.)563 b(The)394
b(timing)0 33591 y(is)369 b(appro)-31 b(ximate,)372 b(as)e(the)f(run)
-31 b(time)370 b(system)g(ma)-31 b(y)370 b(in)-31 b(tro)31
b(duce)370 b(some)f(dela)-31 b(ys.)8471 35921 y Fp(terminate)9938
b Ft(terminate)371 b(execution)f(of)g(the)f(curren)-31
b(t)369 b(agen)-31 b(t)0 38273 y(W)-92 b(e)342 b(also)i(include)g
(constructs)f(for)g(garbage)h(collection.)486 b(The)343
b(execution)i(of)e Fp(terminate)h Ft(terminates)h(the)e(curren)-31
b(t)342 b(agen)-31 b(t)0 39601 y(and)402 b(remo)-31 b(v)g(es)403
b(its)f(closure)g(from)h(the)f(heap,)411 b(releasing)403
b(memory)g(o)31 b(ccupied)403 b(b)-31 b(y)402 b(the)h(agen)-31
b(t.)592 b(An)-31 b(y)403 b(I/O)f(op)31 b(erations)403
b(\(e.g.)0 40929 y(input)370 b(from)g(a)f(k)-31 b(eyb)31
b(oard\))371 b(will)f(b)31 b(e)369 b(abruptly)h(killed.)0
44574 y Fy(1.2)1793 b(Names)598 b(and)g(Scop)50 b(e)598
b(Extrusion)0 46998 y Ft(Names)443 b(pla)-31 b(y)444
b(a)e(k)-31 b(ey)443 b(r^)-553 b(ole)443 b(in)g(the)f(Nomadic)i(Pict)g
(language.)714 b(New)443 b(names)g(of)g(agen)-31 b(ts)443
b(and)g(c)-31 b(hannels)443 b(can)g(b)31 b(e)442 b(created)0
48327 y(dynamically)-92 b(.)485 b(These)336 b(names)g(are)g
Fq(pur)-57 b(e)p Ft(,)343 b(in)337 b(the)f(sense)f(of)i(Needham)g
([Nee89)r(];)347 b(no)337 b(information)i(ab)31 b(out)337
b(their)f(creation)i(is)0 49655 y(visible)381 b(within)h(the)e
(language)i(\(in)f(our)f(curren)-31 b(t)379 b(implemen)-31
b(tation)385 b(they)380 b(do)g(con)-31 b(tain)382 b(site)f(IDs,)h(but)e
(could)h(equally)g(w)-31 b(ell)0 50983 y(b)31 b(e)427
b(implemen)-31 b(ted)429 b(b)-31 b(y)428 b(c)-31 b(ho)31
b(osing)428 b(large)g(random)g(n)-31 b(um)g(b)31 b(ers\).)667
b(Site)427 b(names,)443 b(con)-31 b(tain)429 b(an)e(address)g(and)g(p)
31 b(ort)427 b(n)-31 b(um)g(b)31 b(er)427 b(of)0 52312
y(the)369 b(run)-31 b(time)371 b(system)e(whic)-31 b(h)370
b(they)g(represen)-31 b(t.)1660 53529 y(Channel,)406
b(agen)-31 b(t,)405 b(and)397 b(site)g(names)g(are)f(\014rst-class)h(v)
-61 b(alues)396 b(and)h(they)g(can)g(b)31 b(e)396 b(freely)h(sen)-31
b(t)397 b(to)g(pro)31 b(cesses)395 b(whic)-31 b(h)398
b(are)0 54747 y(lo)31 b(cated)327 b(at)g(other)f(agen)-31
b(ts.)480 b(As)325 b(in)h(the)h Fo(\031)40 b Ft(-calculus,)335
b(names)326 b(can)h(b)31 b(e)325 b Fq(sc)-57 b(op)g(e-extrude)g(d)440
b Ft(|)326 b(here)f(c)-31 b(hannel)327 b(and)f(agen)-31
b(t)327 b(names)0 55965 y(can)369 b(b)31 b(e)369 b(sen)-31
b(t)369 b(outside)h(the)g(agen)-31 b(t)371 b(in)e(whic)-31
b(h)370 b(they)g(w)-31 b(ere)369 b(created.)493 b(F)-92
b(or)368 b(example,)j(if)f(the)g(b)31 b(o)g(dy)369 b(of)g(agen)-31
b(t)371 b Fp(a)e Ft(is)9938 57992 y Fi(agent)523 b(b)g(=)9938
59210 y(\()10984 60427 y(new)g(d)g(:)g(T)10984 61645
y(iflocal)g(c!d)g(then)g(\(\))g(else)h(\(\))9938 62863
y(\))9938 64080 y(in)10984 65298 y(c?x=x![])0 67436 y
Ft(then)291 b(c)-31 b(hannel)292 b(name)g Fp(d)e Ft(is)h(created)g(in)g
(agen)-31 b(t)293 b Fp(b)p Ft(.)466 b(After)291 b(the)h(output)g
(message)f Fp(c!d)g Ft(has)g(b)31 b(een)290 b(sen)-31
b(t)291 b(from)h Fp(b)f Ft(to)g Fp(a)g Ft(\()p Fp(iflocal)p
Ft(\))0 68765 y(and)369 b(has)h(in)-31 b(teracted)370
b(with)h(the)e(input)h Fp(c?x=x![])g Ft(there)f(will)i(b)31
b(e)369 b(an)g(output)i Fp(d![])e Ft(in)h(agen)-31 b(t)370
b Fp(a)p Ft(.)1660 69982 y(W)-92 b(e)437 b(require)g(a)g(clear)h
(relationship)h(b)31 b(et)-31 b(w)g(een)438 b(the)g(seman)-31
b(tics)438 b(of)g(the)g(lo)-31 b(w-lev)g(el)440 b(language)g(and)d(the)
h(in)-31 b(ter-mac)g(hine)0 71200 y(messages)515 b(that)h(are)f(sen)-31
b(t)516 b(in)f(the)g(implemen)-31 b(tation.)935 b(T)-92
b(o)516 b(ac)-31 b(hiev)g(e)516 b(this)g(w)-31 b(e)515
b(allo)-31 b(w)518 b(direct)d(comm)-31 b(unication)519
b(b)31 b(et)-31 b(w)g(een)p eop end
%%Page: 9 10
TeXDict begin 9 9 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e(Language)
37550 b Ft(9)0 1107 y(outputs)509 b(and)g(inputs)g(on)g(a)g(c)-31
b(hannel)510 b(only)f(if)h(they)f(are)f Fq(in)525 b(the)f(same)h(agent)
613 b Ft(|)509 b(messages)g(can)f(b)31 b(e)509 b(sen)-31
b(t)508 b(from)i(one)0 2325 y(agen)-31 b(t)361 b(to)g(another)g(only)g
(b)-31 b(y)360 b Fp(iflocal)g Ft(\(and)h(deriv)-31 b(ed)360
b(forms)g(for)g(sending)g(to)h(an)f(agen)-31 b(t)362
b(on)e(a)g(site,)j(suc)-31 b(h)359 b(as)h Fp(c!v)h
Ft(and)0 3542 y Fp(c!v)p Ft(\).)479 b(In)-31 b(tuitiv)g(ely)-92
b(,)337 b(there)324 b(is)g(a)h(distinct)h Fo(\031)40
b Ft(-calculus-st)-31 b(yle)326 b(c)-31 b(hannel)325
b(for)g(eac)-31 b(h)325 b(c)-31 b(hannel)325 b(name)g(in)g(ev)-31
b(ery)324 b(agen)-31 b(t.)480 b(F)-92 b(or)0 4760 y(example,)371
b(if)f(the)f(b)31 b(o)g(dy)369 b(of)h(agen)-31 b(t)371
b Fp(a)e Ft(is)9938 6797 y Fi(agent)523 b(b)g(=)9938
8015 y(\()10984 9232 y(new)g(d)g(:)g(T)10984 10450 y(\(d?=\(\))10984
11668 y(|)g(iflocal)g(c!d)g(then)g(\(\))g(else)h(\(\)\))9938
12885 y(\))9938 14103 y(in)10984 15321 y(c?x=x![])0 17468
y Ft(then)398 b(after)h(some)g(reduction)g(steps)e Fp(a)i
Ft(con)-31 b(tains)399 b(an)g(output)g(on)g Fp(d)f Ft(and)g
Fp(b)h Ft(con)-31 b(tains)399 b(an)g(input)g(on)f Fp(d)p
Ft(,)406 b(but)399 b(these)f(cannot)0 18797 y(react.)484
b(A)-31 b(t)344 b(\014rst)f(sigh)-31 b(t)344 b(this)g(seman)-31
b(tics)344 b(ma)-31 b(y)345 b(seem)e(coun)-31 b(ter-in)g(tuitiv)g(e,)
352 b(but)344 b(it)g(reconciles)g(the)f(con\015icting)i(requiremen)-31
b(ts)0 20125 y(of)345 b(expressiv)-31 b(eness)344 b(and)g(simplicit)-31
b(y)348 b(of)d(the)g(language.)486 b(An)345 b(implemen)-31
b(tation)349 b(creates)344 b(the)h(mailb)31 b(o)-31 b(x)347
b(datastructure)e(|)g(a)0 21453 y(queue)395 b(of)h(p)31
b(ending)395 b(outputs)h(or)f(inputs)g(|)g(required)g(to)g(implemen)-31
b(t)398 b(a)d(c)-31 b(hannel)396 b(as)f(required;)408
b(it)396 b(is)f(garbage)h(collected)0 22782 y(when)406
b(empt)-31 b(y)-92 b(.)605 b(The)406 b(queue)g(is)g(part)h(of)f(an)h
(agen)-31 b(t's)407 b(state)g(whic)-31 b(h)407 b(is)f(transferred)g
(with)h(ev)-31 b(ery)406 b(mo)-31 b(v)g(e)408 b(of)e(the)h(agen)-31
b(t.)605 b(W)-92 b(e)0 24110 y(could)366 b(further)f(dev)-31
b(elop)366 b(our)f(example)i(and)e(send)f(name)i Fp(d)f
Ft(bac)-31 b(k)366 b(to)g(agen)-31 b(t)367 b Fp(b)e Ft(and)g(use)g(it)h
(for)f(comm)-31 b(unication)369 b(with)e(the)0 25438
y(input)344 b(on)f Fp(d)g Ft(inside)h(agen)-31 b(t)344
b Fp(b)p Ft(.)484 b(The)344 b(output)g(on)f Fp(d)g Ft(can)h(b)31
b(e)342 b(placed)i(an)-31 b(ywhere)344 b(inside)g(agen)-31
b(t)344 b Fp(b)f Ft(\(in)h(particular)h(outside)f(the)0
26767 y(lexical)378 b(scop)31 b(e)376 b(of)h Fp(d)p Ft(\))g(but)f(it)h
(ma)-31 b(y)378 b(still)f(in)-31 b(teract)378 b(with)g(the)e(input)h
(on)g Fp(d)f Ft(as)g(long)i(as)e(b)31 b(oth)377 b(the)f(input)h(and)g
(output)g(are)g(in)0 28095 y(the)369 b(same)h(agen)-31
b(t.)0 31742 y Fy(1.3)1793 b(T)-50 b(yp)50 b(es)0 34166
y Ft(All)253 b(b)31 b(ound)252 b(v)-61 b(ariables)252
b(\(and)h(wildcards\))g(are)e(explicitly)k(t)-31 b(yp)31
b(ed.)454 b(In)251 b(practice,)277 b(ho)-31 b(w)g(ev)g(er,)277
b(man)-31 b(y)253 b(of)f(these)g(t)-31 b(yp)31 b(e)252
b(annotations)0 35495 y(can)305 b(b)31 b(e)304 b(inferred)h
(automatically)310 b(b)-31 b(y)305 b(the)g(compiler.)472
b(Therefore)305 b(w)-31 b(e)305 b(do)g(not)h(include)g(them)f(in)g(the)
g(syn)-31 b(tax)306 b(ab)31 b(o)-31 b(v)g(e.)473 b(T)-31
b(yp)31 b(es)0 36823 y(are)440 b(required)f(in)h(de\014nitions,)460
b(e.g.)705 b(execution)441 b(of)881 b Fp(new)440 b Fi(c:^T)523
b(P)439 b Ft(creates)h(a)g(new)h(unique)f(c)-31 b(hannel)441
b(name)f(for)g(carrying)0 38151 y(v)-61 b(alues)369 b(of)h(t)-31
b(yp)31 b(e)369 b Fp(T)p Ft(.)h(The)f(language)i(inherits)f(a)f(ric)-31
b(h)369 b(t)-31 b(yp)31 b(e)369 b(system)h(from)f(Pict,)i(including)g
(simple)f(record)e(t)-31 b(yp)31 b(es,)370 b(higher-)0
39480 y(order)316 b(p)31 b(olymorphism,)329 b(simple)317
b(recursiv)-31 b(e)316 b(t)-31 b(yp)31 b(es)317 b(and)f(subt)-31
b(yping.)477 b(It)316 b(has)h(a)f(partial)j(t)-31 b(yp)31
b(e)317 b(inference)f(algorithm.)478 b(Belo)-31 b(w,)0
40808 y(w)g(e)370 b(summarise)f(the)h(k)-31 b(ey)369
b(t)-31 b(yp)31 b(es,)370 b(see)f([PT97b)r(])h(for)f(details.)0
43892 y Fh(1.3.1)1495 b(Base)499 b(t)-42 b(yp)42 b(es)0
45936 y Ft(The)394 b(base)f(t)-31 b(yp)31 b(es)393 b(include)h
Fp(String)g Ft(of)g(strings,)400 b Fp(Char)394 b Ft(of)g(c)-31
b(haracters,)400 b Fp(Int)393 b Ft(of)h(in)-31 b(tegers,)401
b(and)393 b Fp(Bool)h Ft(of)g(Bo)31 b(oleans.)566 b(They)0
47264 y(are)306 b(t)-31 b(w)g(o)308 b(prede\014ned)e(Bo)31
b(olean)308 b(constan)-31 b(ts)307 b Fp(false)g Ft(and)g
Fp(true)f Ft(of)h(t)-31 b(yp)31 b(e)307 b Fp(Bool)p Ft(.)472
b(Nomadic)308 b(Pict)g(adds)e(new)h(base)f(t)-31 b(yp)31
b(es)306 b Fp(Site)0 48592 y Ft(and)369 b Fp(Agent)h
Ft(of)g(site)f(and)h(agen)-31 b(t)371 b(names.)0 51677
y Fh(1.3.2)1495 b(Channel)500 b(t)-42 b(yp)42 b(es)498
b(and)h(subt)-42 b(yping)0 53720 y Ft(Pict's)370 b(four)g(c)-31
b(hannel)370 b(t)-31 b(yp)31 b(es)369 b(are)g(as)g(follo)-31
b(ws:)1660 55868 y Fr(\017)554 b Fi(^T)369 b Ft(is)h(the)f(t)-31
b(yp)31 b(e)370 b(of)f(input/output)j(c)-31 b(hannels)370
b(carrying)g(v)-61 b(alues)369 b(of)h(t)-31 b(yp)31 b(e)369
b Fp(T)1660 58049 y Fr(\017)554 b Fp(!T)370 b Ft(is)f(the)g(t)-31
b(yp)31 b(e)370 b(of)g(output)g(c)-31 b(hannels)370 b(accepting)h
Fp(T)1660 60230 y Fr(\017)554 b Fp(?T)370 b Ft(is)f(the)g(t)-31
b(yp)31 b(e)370 b(of)g(input)g(c)-31 b(hannels)369 b(yielding)i
Fp(T)1660 62410 y Fr(\017)554 b Fp(/T)337 b Ft(is)g(the)g(t)-31
b(yp)31 b(e)337 b(of)g Fq(r)-57 b(esp)g(onsive)420 b
Ft(output)338 b(c)-31 b(hannels)337 b(carrying)h Fp(T)p
Ft(;)f(w)-31 b(e)337 b(use)f(this)h(t)-31 b(yp)31 b(e)337
b(to)h(de\014ne)e(pro)31 b(cess)335 b(abstractions)2767
63739 y(and)370 b(functions.)0 65887 y(The)e(t)-31 b(yp)31
b(e)367 b Fi(^T)g Ft(is)h(a)f(subt)-31 b(yp)31 b(e)368
b(of)f(b)31 b(oth)368 b Fp(!T)g Ft(and)f Fp(?T)p Ft(.)h(That)h(is,)f(a)
f(c)-31 b(hannel)368 b(that)h(can)e(b)31 b(e)367 b(used)g(for)g(b)31
b(oth)368 b(input)g(and)g(output)0 67215 y(ma)-31 b(y)427
b(b)31 b(e)425 b(used)h(in)g(a)g(con)-31 b(text)427 b(where)f(just)g
(one)g(capabilit)-31 b(y)429 b(is)d(needed.)662 b(The)426
b(t)-31 b(yp)31 b(e)427 b Fp(/T)e Ft(is)h(a)g(subt)-31
b(yp)31 b(e)426 b(of)h Fp(!T)e Ft(and)i(it)f(w)-31 b(as)0
68543 y(in)g(tro)31 b(duced)422 b(to)f(de\014ne)g(pro)31
b(cess)419 b(abstractions)k(and)e(c)-31 b(hannels)421
b(carrying)g(results)g(in)g(a)g(functional)i(st)-31 b(yle)422
b(\(see)f(examples)0 69872 y(in)447 b(Chapter)g(3\).)724
b(It)447 b(should)f(not)i(b)31 b(e)445 b(used)h(for)g(c)-31
b(hannels)447 b(whic)-31 b(h)448 b(are)e(for)g(comm)-31
b(unication)450 b(b)31 b(et)-31 b(w)g(een)448 b(agen)-31
b(ts;)486 b(w)-31 b(e)447 b(ha)-31 b(v)g(e)0 71200 y(t)g(yp)31
b(es)372 b Fi(^T)p Ft(,)h Fp(!T)p Ft(,)g(and)f Fp(?T)h
Ft(for)f(this.)502 b(In)372 b(principle,)i(t)-31 b(yp)31
b(e)373 b Fp(/T)f Ft(guaran)-31 b(tees)373 b(that)h(there)e(is)g
(exactly)i(one)e(\(lo)31 b(cal\))375 b(receiv)-31 b(er.)502
b(W)-92 b(e)p eop end
%%Page: 10 11
TeXDict begin 10 10 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(10)0 1107 y(de\014ne)417 b(a)g(t)-31
b(yp)31 b(e)417 b Fp(Sig)g Ft(as)g Fp(/[])g Ft(to)h(mark)f(resp)31
b(onsiv)-31 b(e)417 b(c)-31 b(hannels)417 b(whic)-31
b(h)418 b(are)f(used)f(to)i(signal)g(completion)h(rather)e(than)h(for)0
2435 y(exc)-31 b(hanging)371 b(data.)0 5534 y Fh(1.3.3)1495
b(Records,)499 b(p)42 b(olymorphic)500 b(and)f(recursiv)-42
b(e)500 b(t)-42 b(yp)42 b(es)0 7577 y Ft(W)-92 b(e)399
b(can)i(use)e(tuples)i Fp([T1...Tn])g Ft(of)g(t)-31 b(yp)31
b(es)400 b Fp(T1...Tn)h Ft(and)f(existen)-31 b(tial)403
b(p)31 b(olymorphic)402 b(t)-31 b(yp)31 b(es)400 b(suc)-31
b(h)400 b(as)g Fi([#X)523 b(T1...Tn])401 b Ft(in)0 8906
y(whic)-31 b(h)479 b(the)g(t)-31 b(yp)31 b(e)479 b(v)-61
b(ariable)480 b Fp(X)e Ft(ma)-31 b(y)480 b(o)31 b(ccur)478
b(in)h(the)g(\014eld)f(t)-31 b(yp)31 b(es)479 b Fp(T1...Tn)p
Ft(.)822 b(W)-92 b(e)477 b(can)i(add)g(lab)31 b(els)479
b(to)g(tuples)g(obtaining)0 10234 y(records)449 b(suc)-31
b(h)450 b(as)g Fp([label1=T1...labeln=Tn])p Ft(.)740
b(Recursiv)-31 b(e)450 b(t)-31 b(yp)31 b(es)450 b(are)g(constructed)h
(as)f Fp(\(rec)582 b(X=T\))p Ft(,)451 b(in)f(whic)-31
b(h)452 b(the)0 11562 y(t)-31 b(yp)31 b(e)370 b(v)-61
b(ariable)370 b Fp(X)f Ft(o)31 b(ccurs)368 b(in)i(t)-31
b(yp)31 b(e)369 b Fp(T)p Ft(.)0 14661 y Fh(1.3.4)1495
b(V)-125 b(arian)-42 b(t)502 b(and)d(dynamic)g(t)-42
b(yp)42 b(es)0 16704 y Ft(In)536 b(Nomadic)i(Pict)f(w)-31
b(e)536 b(added)h(a)f Fq(variant)641 b Ft(t)-31 b(yp)31
b(e)537 b Fp([label1>T1...labeln>Tn])i Ft(and)e(a)f(t)-31
b(yp)31 b(e)537 b Fp(Dyn)f Ft(of)h Fq(dynamic)599 b Ft(v)-61
b(al-)0 18033 y(ues.)997 b(The)537 b(v)-61 b(arian)-31
b(t)539 b(t)-31 b(yp)31 b(e)538 b Fp([label1>T1...labeln>Tn])j
Ft(denotes)c(all)i(v)-61 b(alues)538 b Fp([label>v:T])g
Ft(suc)-31 b(h)537 b(as)h(\()p Fo(l)22 b(abel)g(;)184
b(T)154 b Ft(\))590 b Fr(2)0 19361 y(f)p Ft(\()p Fo(l)22
b(abel)3240 19527 y Fn(1)3739 19361 y Fo(;)184 b(T)4877
19527 y Fn(1)5374 19361 y Ft(\))p Fo(;)g(:::;)g Ft(\()p
Fo(l)22 b(abel)10394 19527 y Fg(n)11002 19361 y Fo(;)184
b(T)12140 19527 y Fg(n)12743 19361 y Ft(\))p Fr(g)p Ft(,)379
b(and)d(can)g(b)31 b(e)375 b(used)g(for)h(expressing)f(v)-61
b(arian)-31 b(ts)376 b(and)g(t)-31 b(yp)31 b(es)376 b(of)g(c)-31
b(hannels)376 b(carrying)h(v)-61 b(alues)0 20689 y(of)336
b(a)g(\014nite)g(set)f(of)h(t)-31 b(yp)31 b(es.)482 b(The)335
b(dynamic)i(t)-31 b(yp)31 b(e)336 b(is)f(useful)h(for)f(implemen)-31
b(ting)339 b(traders,)j(i.e.)482 b(maps)336 b(from)g(string)g(k)-31
b(eyw)g(ords)0 22018 y(\(or)368 b(textual)i(descriptions\))e(to)h
(dynamic)g(v)-61 b(alues.)492 b(Dynamic)369 b(v)-61 b(alues)367
b(are)h(implemen)-31 b(ted)370 b(as)d(pairs)h(\()p Fo(v)40
b(;)184 b(T)154 b Ft(\))368 b(of)h(a)e(v)-61 b(alue)369
b(and)0 23346 y(its)h(t)-31 b(yp)31 b(e.)0 26445 y Fh(1.3.5)1495
b(De\014ning)500 b(t)-42 b(yp)42 b(es)498 b(and)h(t)-42
b(yp)42 b(e)498 b(op)42 b(erators)0 28488 y Ft(W)-92
b(e)415 b(can)h(use)g(a)g(declaration)i(k)-31 b(eyw)g(ord)417
b Fp(type)f Ft(to)h(de\014ne)f(new)g(t)-31 b(yp)31 b(es)416
b(and)g(t)-31 b(yp)31 b(e)417 b(op)31 b(erators,)428
b(e.g.)633 b Fp(type)582 b(\(Double)g(X\))g(=)0 29816
y([X)f(X])352 b Ft(denotes)h(a)f(new)g(t)-31 b(yp)31
b(e)352 b(op)31 b(erator)353 b Fp(Double)g Ft(whic)-31
b(h)352 b(can)h(b)31 b(e)351 b(used)g(as)h(in)g Fp(new)582
b(c:)p Fi(^\(Double)524 b(Int\))p Ft(.)486 b(In)352 b(Nomadic)i(Pict)0
31145 y(programs,)329 b(w)-31 b(e)318 b(often)g(use)f(a)h(t)-31
b(yp)31 b(e)318 b(op)31 b(erator)318 b Fp(Map)f Ft(from)h(the)g
(libraries,)329 b(taking)319 b(t)-31 b(w)g(o)320 b(t)-31
b(yp)31 b(es)317 b(and)h(giving)h(the)f(t)-31 b(yp)31
b(e)318 b(of)g(maps,)0 32473 y(or)369 b(lo)31 b(okup)370
b(tables,)h(from)f(one)f(to)h(the)f(other)h(\(examples)h(of)e(using)h
(maps)f(are)h(in)f(Chapter)h(4\).)0 36134 y Fy(1.4)1793
b(V)-149 b(alues)598 b(and)g(P)-50 b(atterns)0 38558
y Fu(V)-106 b(alues)1108 b Ft(Channels)536 b(allo)-31
b(w)537 b(the)f(comm)-31 b(unication)539 b(of)c(\014rst-order)g(v)-61
b(alues,)577 b(consisting)536 b(of)g(c)-31 b(hannel,)578
b(agen)-31 b(t,)579 b(and)535 b(site)0 39887 y(names,)600
b(constan)-31 b(ts,)601 b(in)-31 b(tegers,)600 b(strings,)f(c)-31
b(haracters,)600 b(tuples)553 b Fp([v1...vn])i Ft(of)e(the)h
Fo(n)f Ft(v)-61 b(alues)553 b Fp(v1...vn)p Ft(,)600 b(pac)-31
b(k)-61 b(ages)554 b(of)0 41215 y(existen)-31 b(tial)369
b(t)-31 b(yp)31 b(es)366 b Fi([#T)523 b(v1...vn])p Ft(,)367
b(elemen)-31 b(ts)368 b(of)e(v)-61 b(arian)-31 b(t)368
b(t)-31 b(yp)31 b(es)366 b Fp([label>v])p Ft(,)i(and)e(dynamic)i(v)-61
b(alues.)492 b(A)366 b(dynamic)h(v)-61 b(alue)0 42543
y(can)426 b(b)31 b(e)425 b(constructed)h(using)g(a)f(constructor)h
Fp(dynamic)p Ft(,)441 b(as)426 b(in)g Fp(\(dynamic)582
b(T\))p Ft(.)426 b(V)-92 b(alues)426 b(are)f(deconstructed)h(b)-31
b(y)426 b(pattern)0 43872 y(matc)-31 b(hing)270 b(on)d(input)h(or,)288
b(in)268 b(the)g(case)f(of)h(v)-61 b(arian)-31 b(ts)268
b(and)g(dynamic)g(v)-61 b(alues,)289 b(using)267 b(syn)-31
b(tactic)269 b(sugar)f Fp(switch)g Ft(and)f Fp(typecase)p
Ft(.)1660 45200 y(The)419 b(language)i(do)31 b(es)418
b(not)i(supp)31 b(ort)418 b(comm)-31 b(unication)422
b(of)e(pro)31 b(cesses)417 b(\(except)i(for)g(the)g(migration)i(of)e
(whole)h(agen)-31 b(ts\))0 46528 y(but)414 b(for)h(exp)31
b(erimen)-31 b(tal)416 b(reasons)d(it)i(p)31 b(ermits)415
b Fq(higher-or)-57 b(der)533 b Ft(functions)415 b(to)g(b)31
b(e)414 b(comm)-31 b(unicated)417 b(b)31 b(et)-31 b(w)g(een)415
b(agen)-31 b(ts.)628 b(They)0 47857 y(will)371 b(b)31
b(e)369 b(describ)31 b(ed)368 b(in)h(Chapter)h(3,)g(together)h(with)f
(deriv)-31 b(ed)370 b(forms.)1660 49185 y(Characters)436
b(constan)-31 b(ts)437 b(are)f(written)h(b)-31 b(y)436
b(enclosing)g(a)g(single)h(c)-31 b(haracter)436 b(in)g(single-quotes,)
454 b(as)436 b(in)g Fp('a')p Ft(.)692 b(Similarly)-92
b(,)0 50513 y(string)532 b(constan)-31 b(ts)533 b(are)f(written)h(b)-31
b(y)532 b(enclosing)h(a)f(sequence)g(of)g(zero)g(or)f(more)h(c)-31
b(haracters)532 b(in)h(double-quotes.)982 b(The)0 51842
y(follo)-31 b(wing)373 b(escap)31 b(e)369 b(sequences)f(from)i(Pict)g
(can)f(b)31 b(e)369 b(used)g(to)h(write)g(sp)31 b(ecial)369
b(c)-31 b(haracters)370 b(in)f(constan)-31 b(ts:)8471
54205 y Fp(')14586 b Ft(single)370 b(quote)8471 55533
y Fp(")14586 b Ft(double)370 b(quote)8471 56861 y Fr(n)14614
b Ft(bac)-31 b(kslash)8471 58190 y Fr(n)p Fp(n)14033
b Ft(newline)370 b(\(ascii)h(13\))8471 59518 y Fr(n)p
Fp(t)14033 b Ft(tab)370 b(\(ascii)g(8\))0 62406 y Fu(P)-35
b(atterns)1163 b Fp(p)501 b Ft(are)h(of)g(the)f(same)h(shap)31
b(es)501 b(as)g(v)-61 b(alues)502 b(\(but)g(names)g(cannot)g(b)31
b(e)501 b(rep)31 b(eated\),)536 b(with)502 b(the)g(addition)i(of)e(a)0
63735 y(wildcard.)487 b(The)349 b(wildcard)h(pattern)p
15631 63735 349 45 v 1116 w(instead)g(of)f(named)g(v)-61
b(ariables)350 b(can)f(b)31 b(e)348 b(used)g(to)h(reduce)f(the)h(n)-31
b(um)g(b)31 b(er)349 b(of)g(irrelev)-61 b(an)-31 b(t)0
65063 y(v)-61 b(ariable)370 b(bindings.)p eop end
%%Page: 11 12
TeXDict begin 11 11 bop 0 9409 a Fj(Chapter)861 b(2)0
14944 y FA(High-Lev)-86 b(el)1031 b(Language)0 20700
y Ft(Nomadic)470 b(Pict)g(promotes)g(a)e(hierarc)-31
b(hical)470 b(or)f(la)-31 b(y)g(ered)469 b(pro)31 b(cess)468
b(of)h(building)h(distributed)f(applications,)497 b(where)468
b(eac)-31 b(h)0 22029 y(la)g(y)g(er)392 b(represen)-31
b(ts)391 b(di\013eren)-31 b(t)391 b(concerns.)559 b(The)392
b(comm)-31 b(unication)395 b(infrastructure)c(enco)31
b(ding)393 b(is)e(the)h(la)-31 b(y)g(er)392 b(whic)-31
b(h)393 b(formally)0 23357 y(de\014nes)545 b(prop)31
b(erties)545 b(of)h(the)f(agen)-31 b(t)547 b(comm)-31
b(unication.)1025 b(It)545 b(can)h(often)g(b)31 b(e)545
b(useful)g(to)h(design)g(the)g(enco)31 b(ding)546 b(with)h(an)0
24685 y(application)427 b(in)d(mind,)438 b(i.e.)657 b(tak)-31
b(e)425 b(in)-31 b(to)425 b(accoun)-31 b(t)425 b(the)f(application)j
(demands)c(and)h(imp)31 b(ortan)-31 b(t)426 b(prop)31
b(erties,)438 b(and)423 b(design)0 26014 y(a)392 b(go)31
b(o)g(d)393 b(infrastructure)g(whic)-31 b(h)393 b(guran)-31
b(tees)393 b(these)f(prop)31 b(erties.)561 b(This)393
b(allo)-31 b(ws)394 b(for)e(b)31 b(etter)393 b(use)e(of)i(system)g
(resources,)k(e.g.)0 27342 y(in)356 b(wide-area)h(and)f(mobile)i(net)
-31 b(w)g(orks,)360 b(and)c(when)g(some)g(higher)g(lev)-31
b(els)357 b(of)f(securit)-31 b(y)356 b(are)g(required.)488
b(A)355 b(more)i(traditional)0 28670 y(approac)-31 b(h)434
b(aims)g(at)f(building)i(\\middlew)-31 b(are")436 b(systems)d(as)f
(blac)-31 b(k)435 b(b)31 b(o)-31 b(xes,)449 b(trying)434
b(to)g(satisfy)g(all)g(p)31 b(ossible)433 b(demands)g(of)0
29999 y(all)480 b(curren)-31 b(t)478 b(and)h(future)g(applications.)823
b(Belo)-31 b(w)481 b(w)-31 b(e)479 b(describ)31 b(e)478
b(the)h(primitiv)-31 b(es)480 b(of)f(the)g(high-lev)-31
b(el)481 b(language)g(and)e(the)0 31327 y(language)371
b(for)f(expressing)f(the)g(infrastructure)g(enco)31 b(dings.)0
34910 y Fy(2.1)1793 b(Primitiv)-50 b(es)0 37334 y Ft(The)383
b(high-lev)-31 b(el)385 b(language)g(is)d(obtained)j(b)-31
b(y)383 b(extending)h(the)f(lo)-31 b(w-lev)g(el)385 b(language)g(with)f
(a)f(single)h(lo)31 b(cation-indep)g(enden)-31 b(t)0
38663 y(comm)g(unication)373 b(primitiv)-31 b(e.)7890
40635 y Fp(c@a!v)12843 b Ft(lo)31 b(cation-indep)g(enden)-31
b(t)372 b(output)f(to)f(c)-31 b(hannel)370 b Fp(c)f Ft(at)h(agen)-31
b(t)370 b Fp(a)0 42629 y Ft(The)292 b(in)-31 b(tended)292
b(seman)-31 b(tics)293 b(of)f(an)g(output)g Fp(c@a!v)g
Ft(is)g(that)g(its)g(execution)h(will)g(reliably)g(deliv)-31
b(er)293 b(the)e(message)h Fp(c!v)g Ft(to)g(agen)-31
b(t)0 43958 y Fp(a)p Ft(,)310 b(irresp)31 b(ectiv)-31
b(e)294 b(of)g(the)h(curren)-31 b(t)294 b(site)g(of)h
Fp(a)f Ft(and)g(of)h(an)-31 b(y)295 b(migrations.)470
b(The)294 b(lo)-31 b(w-lev)g(el)297 b(comm)-31 b(unication)298
b(primitiv)-31 b(es)296 b(are)e(also)0 45286 y(a)-31
b(v)-61 b(ailable,)437 b(for)421 b(in)-31 b(teracting)424
b(with)e(application)i(agen)-31 b(ts)422 b(whose)g(lo)31
b(cations)423 b(are)e(predictable.)649 b(The)421 b(actual)i(seman)-31
b(tics)422 b(of)0 46614 y Fp(c@a!v)364 b Ft(will)g(dep)31
b(end)363 b(on)g(the)h(enco)31 b(ding)364 b(\(or)f(compilation-time)368
b(library\))c(of)g(this)f(primitiv)-31 b(e)366 b(in)d(the)g(lo)-31
b(w-lev)g(el)366 b(language.)0 47943 y(The)297 b(Nomadic)h(Pict)f
(distribution)i(\014les)d(con)-31 b(tain)298 b(some)f(example)h(enco)31
b(dings)297 b(whic)-31 b(h)297 b(guaran)-31 b(tee)298
b(the)e(in)-31 b(tended)298 b(seman)-31 b(tics)0 49271
y(if)408 b(the)f(underlying)i(distributed)f(system)g(is)f(mostly)i
(reliable.)608 b(Infrastructures)407 b(whic)-31 b(h)408
b(can)f(tolerate)j(di\013eren)-31 b(t)407 b(failures)0
50599 y(ma)-31 b(y)370 b(b)31 b(e)369 b(added)h(in)f(future.)1660
51928 y(Other)443 b(lo)-31 b(w-)444 b(and)e(high-lev)-31
b(el)445 b(comm)-31 b(unication)446 b(primitiv)-31 b(es)445
b(ma)-31 b(y)443 b(b)31 b(e)442 b(added)h(in)g(future,)461
b(e.g.)713 b(in)443 b(order)f(to)h(supp)31 b(ort)0 53256
y(stream)370 b(comm)-31 b(unication.)496 b(They)370 b(can)f(b)31
b(e)369 b(enco)31 b(ded)369 b(as)g(functions)h(or)f(using)h(the)f(syn)
-31 b(tax)371 b(as)e(b)31 b(elo)-31 b(w.)7890 55228 y
Fp(do)581 b("key")h(v)f(in)h(P)7031 b Ft(a)369 b(placeholder)i(for)e
(macro)h(de\014nition)h("k)-31 b(ey")0 57222 y(The)421
b(compiler)h(will)g(replace)f(eac)-31 b(h)421 b(o)31
b(ccurrence)420 b(of)h Fp(do)582 b("key")g(v)f(in)g(P)421
b Ft(b)-31 b(y)421 b(a)g(macro)g(de\014nition)i(in)e(the)f(lo)-31
b(w-lev)g(el)424 b(lan-)0 58551 y(guage)403 b(whic)-31
b(h)403 b(has)g(a)f(string)h(name)f Fp("key")p Ft(.)593
b(The)402 b(parameter)h Fp(v)f Ft(should)g(ha)-31 b(v)g(e)404
b(a)e(t)-31 b(yp)31 b(e)403 b(whic)-31 b(h)403 b(is)f(exp)31
b(ected)402 b(b)-31 b(y)403 b(a)f(macro)0 59879 y(de\014nition.)493
b(Alternativ)-31 b(ely)-92 b(,)370 b(w)-31 b(e)367 b(can)g(simply)g
(de\014ne)f(a)g(function)i(\(or)e(pro)31 b(cess)365 b(abstraction\))k
(in)d(the)h(high-lev)-31 b(el)368 b(program)0 61208 y(and)419
b(reimplemen)-31 b(t)422 b(this)d(function)i(in)e(Lo)-31
b(w-Lev)g(el)421 b(Nomadic)g(Pict)f(using)g(the)f(construct)h
Fr(f)p Fp(def)582 b(f)1163 b(...)f Fr(g)p Fp(e)582 b(=)f(P)p
Ft(,)420 b(de-)0 62536 y(scrib)31 b(ed)435 b(in)h Fr(x)p
Ft(2.2.)693 b(The)436 b(Nomadic)h(Pict)g(compiler)g(will)g(replace)f
(function)h(de\014nitions)g(in)f(the)f(high-lev)-31 b(el)438
b(program)f(b)-31 b(y)0 63864 y(their)369 b(equiv)-61
b(alen)-31 b(ts)371 b(de\014ned)e(in)h(the)f(comp)31
b(ositional)373 b(translation.)0 67447 y Fy(2.2)1793
b(Expressing)600 b(Enco)50 b(dings)0 69872 y Ft(The)355
b(language)i(for)e(expressing)f(enco)31 b(dings)355 b(of)h(high-lev)-31
b(el)356 b(language)h(primitiv)-31 b(es)357 b(allo)-31
b(ws)357 b(the)e(translation)i(of)e(eac)-31 b(h)355 b(in)-31
b(ter-)0 71200 y(esting)321 b(phrase)f(\(all)h(those)g(in)-31
b(v)g(olving)323 b(agen)-31 b(ts)322 b(or)e(comm)-31
b(unication\))324 b(to)d(b)31 b(e)320 b(sp)31 b(eci\014ed)319
b(and)i(t)-31 b(yp)31 b(e)320 b(c)-31 b(hec)g(k)g(ed;)338
b(the)320 b(translation)25447 74521 y(11)p eop end
%%Page: 12 13
TeXDict begin 12 12 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(12)0 1107 y(of)286 b(a)f(whole)i(program)e
(\(including)j(the)d(translation)j(of)d(t)-31 b(yp)31
b(es\))286 b(can)g(b)31 b(e)284 b(expressed)g(using)i(this)f(comp)31
b(ositional)289 b(translation.)0 2435 y(Belo)-31 b(w)366
b(w)-31 b(e)364 b(describ)31 b(e)363 b(the)i(concrete)f(syn)-31
b(tax)365 b(of)g(the)f(language)i(for)e(expressing)g(enco)31
b(dings;)367 b(the)d(example)i(infrastructure)0 3764
y(in)353 b(Chapter)g(4)g(should)f(giv)-31 b(e)354 b(the)f(idea)g(ho)-31
b(w)353 b(to)h(use)d(our)i(language)h(\(see)f(also)g(App)31
b(endix\).)488 b(W)-92 b(e)352 b(will)i(in)-31 b(tro)31
b(duce)353 b(the)g(main)0 5092 y(language)371 b(primitiv)-31
b(es)371 b(in)f(groups.)7890 7072 y Fp(program)582 b(par:T)g(=)f(P)5869
b Ft(Program)370 b(declaration)7890 8401 y Fr(f)p Fp(toplevel)583
b(P)e(par)p Fr(g)p Fp(T')h(=)g(Q)3018 b Ft(T)-92 b(op)369
b(lev)-31 b(el)371 b(creation)0 10403 y(The)430 b(construct)g
Fp(program)582 b(par:T)g(=)g(P)429 b Ft(declares)h(a)g(program)h(with)g
(b)31 b(o)g(dy)429 b Fp(P)p Ft(,)i(expressed)d(in)i(the)g(high-lev)-31
b(el)432 b(language.)0 11731 y(The)301 b(name)h Fp(par)g
Ft(of)f(t)-31 b(yp)31 b(e)302 b Fp(T)f Ft(is)g(the)h(program)g
(parameter)g(whic)-31 b(h)302 b(ma)-31 b(y)302 b(b)31
b(e)301 b(referred)f(to)i(in)f(the)h(b)31 b(o)g(dy)301
b Fp(P)g Ft(\(i.e.)471 b Fp(par)302 b Ft(is)f(binding)0
13059 y(in)349 b Fp(P)p Ft(\).)g(In)f(order)f(to)i(execute)g(a)f
(program)i Fp(P)e Ft(with)h(the)g(formal)h(parameter)f
Fp(par)f Ft(w)-31 b(e)349 b(need)f(to)h(de\014ne)f(a)g(toplev)-31
b(el)351 b(using)e(the)0 14388 y(construct)370 b Fr(f)p
Fp(toplevel)582 b(P)g(par)p Fr(g)p Fp(T')g(=)f(Q)p Ft(.)1660
15716 y(The)518 b(execution)g(of)f Fr(f)p Fp(toplevel)583
b(P)e(par)p Fr(g)p Fp(T')i(=)e(Q)517 b Ft(spa)-31 b(wns)517
b(a)g(new)g(toplev)-31 b(el)519 b(on)e(the)g(curren)-31
b(t)516 b(site,)555 b(with)518 b(b)31 b(o)g(dy)517 b
Fp(Q)0 17045 y Ft(expressed)345 b(in)i(the)f(lo)-31 b(w-lev)g(el)349
b(language.)487 b(After)347 b(the)g(creation,)352 b(the)347
b(run)-31 b(time)347 b(system)f(commences)i(execution)f(of)g(pro)31
b(cess)0 18373 y Fp(Q)p Ft(.)318 b(The)f(names)h Fp(P)f
Ft(and)h Fp(par)g Ft(are)f(binding)h(in)g Fp(Q)f Ft(and)h(denote)g(a)g
(user-de\014ned)e(program,)329 b(declared)317 b(b)-31
b(y)318 b(using)g(the)f(construct)0 19701 y Fp(program)p
Ft(,)565 b(and)525 b(the)g(program)g(parameter,)565 b(whic)-31
b(h)526 b(m)-31 b(ust)525 b(b)31 b(e)525 b(initiated)i(in)e(the)g
(toplev)-31 b(el)527 b(b)31 b(o)g(dy)525 b Fp(Q)p Ft(.)g(The)g(t)-31
b(yp)31 b(e)525 b Fp(T')g Ft(in)0 21030 y Fr(f)p Fp(toplevel)583
b(P)e(par)p Fr(g)p Fp(T')h(=)g(Q)451 b Ft(is)f(the)i(t)-31
b(yp)31 b(e)451 b(of)g(the)h(translation)h(parameter)f(\(explained)g(b)
31 b(elo)-31 b(w\),)474 b(not)452 b(to)f(b)31 b(e)451
b(confused)0 22358 y(with)370 b(the)g(t)-31 b(yp)31 b(e)370
b Fp(T)f Ft(of)g(the)h(program)g(parameter)g Fp(par)f
Ft(in)h Fp(program)p Ft(.)5528 24400 y Fr(f)p Fp(P)p
Fr(g)p Fp(e)18204 b Ft(a)369 b(placeholder)i(for)e(translation)j(of)d
(pro)31 b(cess)368 b Fp(P)0 26463 y Ft(W)-92 b(e)374
b(can)i(use)e(a)h(placeholder)h Fr(f)p Fp(P)p Fr(g)p
Fp(e)h Ft(inside)e(the)g(toplev)-31 b(el)377 b(b)31 b(o)g(dy)375
b Fp(Q)p Ft(.)h(The)f(Nomadic)i(Pict)f(compiler)g(will)h(replace)e
Fr(f)p Fp(P)p Fr(g)p Fp(e)i Ft(b)-31 b(y)0 27792 y(translation)395
b(of)f(program)f Fp(P)g Ft(in)-31 b(to)395 b(the)e(lo)-31
b(w-lev)g(el)396 b(language,)401 b(i.e.)565 b(program)394
b Fp(P)e Ft(with)j(all)f(high-lev)-31 b(el)395 b(language)g(primitiv)
-31 b(es)0 29120 y(replaced)396 b(b)-31 b(y)396 b(their)g(enco)31
b(dings)396 b(in)-31 b(to)397 b(the)f(lo)-31 b(w-lev)g(el)398
b(language.)574 b(The)396 b(translation)i(has)d(a)h(parameter)h
Fp(e)e Ft(of)h(t)-31 b(yp)31 b(e)396 b Fp(T')g Ft(\(i.e.)0
30448 y(the)369 b(t)-31 b(yp)31 b(e)370 b(de\014ned)f(in)g(the)h
Fp(toplevel)g Ft(phrase\).)493 b(The)369 b(parameter)h(v)-61
b(alue)370 b(m)-31 b(ust)369 b(b)31 b(e)369 b(initialised)j(in)e(the)f
(b)31 b(o)g(dy)369 b Fp(Q)p Ft(.)5528 32490 y Fr(f)p
Fp(Agent)p Fr(g)582 b Fp(=)g(T)14135 b Ft(translation)372
b(of)d(t)-31 b(yp)31 b(e)370 b Fp(Agent)5528 33818 y
Fr(f)p Fp(Site)p Fr(g)582 b Fp(=)g(T)14716 b Ft(translation)372
b(of)d(t)-31 b(yp)31 b(e)370 b Fp(Site)0 35821 y Ft(In)330
b(the)h(infrastructure)f(enco)31 b(ding,)340 b(w)-31
b(e)331 b(ma)-31 b(y)331 b(w)-31 b(an)g(t)333 b(to)e(store)f
(additional)k(data)d(in)g(v)-61 b(alues)331 b(of)g(t)-31
b(yp)31 b(e)330 b Fp(Agent)h Ft(and)g Fp(Site)p Ft(,)339
b(suc)-31 b(h)0 37149 y(the)433 b(name)h(of)g(a)f(daemon)h(agen)-31
b(t)435 b(on)e(a)h(site,)450 b(or)432 b(the)i(address)e(of)i(a)f(lo)31
b(cal)434 b(serv)-31 b(er.)684 b(This)433 b(will)i(require)e(to)h(enco)
31 b(de)433 b(t)-31 b(yp)31 b(es)0 38477 y Fp(Agent)411
b Ft(and)g Fp(Site)f Ft(as)h(tuples)f(of)h(basic)g(t)-31
b(yp)31 b(es.)617 b(The)410 b(constructs)h Fr(f)p Fp(Agent)p
Fr(g)582 b Fp(=)g(T)410 b Ft(and)h Fr(f)p Fp(Site)p Fr(g)582
b Fp(=)g(T)410 b Ft(are)g(used)g(to)h(de\014ne)0 39806
y(the)382 b(translation)h(of)f(t)-31 b(yp)31 b(es)382
b Fp(Agent)g Ft(and)f Fp(Site)h Ft(in)-31 b(to)383 b(complex)f(t)-31
b(yp)31 b(es.)530 b(The)381 b(compiler)i(will)g(use)e(this)h
(translation)h(to)f(t)-31 b(yp)31 b(e)0 41134 y(c)-31
b(hec)g(k)370 b(the)f(comp)31 b(ositional)373 b(translation)e(of)f(the)
f(high-lev)-31 b(el)372 b(language)f(primitiv)-31 b(es)371
b(in)-31 b(to)371 b(the)e(lo)-31 b(w-lev)g(el)372 b(language.)5528
43114 y Fr(f)p Fp(agent)582 b(a)f(=)h(P)f(in)g(Q)p Fr(g)p
Fp(e)h(=)g(Proc)5418 b Ft(translation)372 b(of)d(agen)-31
b(t)371 b(creation)5528 44443 y Fr(f)p Fp(migrate)582
b(to)g(s)f(P)p Fr(g)p Fp(e)h(=)f(Proc)6581 b Ft(translation)372
b(of)d(migration)5528 45771 y Fr(f)p Fp(c@a!v)p Fr(g)p
Fp(e)583 b(=)e(Proc)11811 b Ft(translation)372 b(of)d(lo)31
b(cation-indep)g(enden)-31 b(t)373 b(output)5528 47099
y Fr(f)p Fp(c?*p=Q)p Fr(g)p Fp(e)583 b(=)e(Proc)11230
b Ft(translation)372 b(of)d(replicated)i(input)5528 48428
y Fr(f)p Fp(c!v)p Fr(g)p Fp(e)583 b(=)e(Proc)10068
b Ft(translation)372 b(of)d(output)i(to)f(agen)-31 b(t)370
b(on)g(site)5528 49756 y Fr(f)p Fp(c!v)p Fr(g)p Fp(e)583
b(=)e(Proc)11230 b Ft(translation)372 b(of)d(output)i(to)f(adjacen)-31
b(t)370 b(agen)-31 b(t)5528 51084 y Fr(f)p Fp(iflocal)582
b(c!v)g(then)g(P)f(else)h(Q)p Fr(g)p Fp(e)g(=)f(Proc)26000
52413 y Ft(translation)372 b(of)d(test-and-send)h(to)g(agen)-31
b(t)5528 53741 y Fr(f)p Fp(wait)582 b(c?p=P)g(timeout)g(t->Q)p
Fr(g)p Fp(e)g(=)g(Proc)1350 b Ft(translation)372 b(of)d(timed)i(input)0
55743 y(These)358 b(are)f(constructs)h(of)g(the)g(comp)31
b(ositional)362 b(translation)e(of)e(the)g(high-lev)-31
b(el)360 b(language)g(in)-31 b(to)359 b(the)f(lo)-31
b(w-lev)g(el)361 b(language.)0 57072 y(The)456 b(\014rst)g(three)g
(constructs)g(are)g(the)g(most)h(often)g(used.)753 b(W)-92
b(e)455 b(can)h(usually)i(omit)f(the)g(rest)e(since)h(the)g
(translation)j(is)0 58400 y(trivial.)466 b Fp(Proc)285
b Ft(in)g(eac)-31 b(h)285 b(clause)g(of)g(the)g(comp)31
b(ositional)288 b(translation)f(is)d(the)h(pro)31 b(cess)283
b(in)i(the)g(lo)-31 b(w-lev)g(el)287 b(language)g(whic)-31
b(h)285 b(will)0 59728 y(replace)403 b(the)g(primitiv)-31
b(e)405 b(of)f(the)f(high-lev)-31 b(el)405 b(language.)595
b(The)403 b(comp)31 b(ositional)407 b(translation)e(of)e(eac)-31
b(h)404 b(high-lev)-31 b(el)405 b(language)0 61057 y(phrase)512
b(has)g(a)h(translation)i(parameter)e Fp(e)f Ft(whose)h(v)-61
b(alue)513 b(m)-31 b(ust)513 b(b)31 b(e)512 b(initialised)k(in)c(the)h
(toplev)-31 b(el)515 b(and)d(passed)g(to)i(the)0 62385
y(enco)31 b(ding)370 b(b)-31 b(y)370 b(using)f(the)h(construct)f
Fr(f)p Fp(P)p Fr(g)p Fp(e)h Ft(\(describ)31 b(ed)369
b(ab)31 b(o)-31 b(v)g(e\).)5528 64427 y Fp(!a)19310 b
Ft(a)369 b(pattern)h(refering)g(to)g(translation)h(v)-61
b(ariable)370 b Fp(a)0 66491 y Ft(Names)282 b Fp(a)p
Ft(,)300 b Fp(par)p Ft(,)g(and)282 b Fp(p)f Ft(in)h(translation)j
(de\014nitions:)450 b Fr(f)p Fp(agent)582 b(a)f(=)h(P)f(in)g(Q)p
Fr(g)p Fp(e)h(=)g(Proc)p Ft(,)300 b Fr(f)p Fp(toplevel)583
b(P)e(par)p Fr(g)p Fp(T)h(=)f(Proc)0 67819 y Ft(and)347
b Fr(f)p Fp(c?*p=Q)p Fr(g)p Fp(e)583 b(=)f(Proc)p Ft(,)352
b(are)347 b(binders)f(whic)-31 b(h)348 b(should)f(b)31
b(e)347 b(created)g(inside)g Fp(Proc)p Ft(.)486 b(W)-92
b(e)346 b(can)h(use)f(pattern)i Fp(!a)f Ft(in)g Fp(Proc)h
Ft(in)0 69147 y(order)369 b(to)h(refer)e(to)i(translation)h(v)-61
b(ariable)370 b Fp(a)g Ft(and,)g(e.g.)493 b(assign)370
b(v)-61 b(alue)369 b Fp(v)g Ft(to)h Fp(a)g Ft(using)f
Fp(val)582 b(!a=v)p Ft(.)6109 71189 y Fr(f)p Fp(do)g("key")g(x)f(in)g
(P)h Fr(g)p Fp(e)f(=)h(Proc)4837 b Ft(macro)370 b(de\014nition)h("k)-31
b(ey")p eop end
%%Page: 13 14
TeXDict begin 13 13 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(13)0 1107 y(A)289 b(rudimen)-31
b(tary)290 b(mo)31 b(dule)289 b(system)g(allo)-31 b(ws)291
b(enco)31 b(dings)289 b(of)g(an)-31 b(y)290 b(new)f(phrases)f(of)h(the)
g(high-lev)-31 b(el)291 b(language)f(to)g(b)31 b(e)288
b(expressed)0 2435 y(as)369 b(macro)h(de\014nitions.)494
b(W)-92 b(e)368 b(can)h(use)g(the)g(macros)g(in)h(programs)f(writing)
740 b Fp(do)581 b("key")h(x)f(in)h(P)p Ft(.)369 b(Here,)h(the)f(t)-31
b(yp)31 b(e)369 b(of)h Fp(x)f Ft(is)0 3764 y(not)h(kno)-31
b(wn)370 b(un)-31 b(til)371 b(the)e(macro)h(de\014nition)h(is)e
(applied)i(and)e(the)h(t)-31 b(yp)31 b(e)369 b(information)j(can)e(b)31
b(e)368 b(inferred.)6109 6126 y Fr(f)p Fp(def)582 b(f)p
Fr(g)p Fp(e)g([...])1163 b(=)581 b(Proc)7162 b Ft(Rede\014nition)371
b(of)e(pro)31 b(cess)368 b(abstraction)6109 7455 y Fr(f)p
Fp(def)582 b(f)p Fr(g)p Fp(e)g(\(...\):T)g(=)f(Proc)6581
b Ft(Rede\014nition)371 b(of)e(function)0 9901 y(All)292
b(pro)31 b(cess)290 b(abstractions)j(and)f(functions)g(in)g(the)f
(high-lev)-31 b(el)294 b(language)f(whic)-31 b(h)293
b(ha)-31 b(v)g(e)292 b(t)-31 b(yp)31 b(es)291 b(\(of)i(parameters)e(or)
g(returned)0 11229 y(v)-61 b(alues\))356 b(con)-31 b(taining)359
b Fp(Site)d Ft(or)g Fp(Agent)g Ft(whic)-31 b(h)357 b(ha)-31
b(v)g(e)357 b(b)31 b(een)355 b(enco)31 b(ded)355 b(as)h(complex)h(t)-31
b(yp)31 b(es)356 b(m)-31 b(ust)357 b(b)31 b(e)355 b(reimplemen)-31
b(ted)358 b(in)e(the)0 12558 y(lo)-31 b(w-lev)g(el)441
b(language.)700 b(T)-92 b(o)438 b(express)f(these)h(translations)h(w)
-31 b(e)439 b(use)e(the)h(constructs)g Fr(f)p Fp(def)582
b(f)p Fr(g)p Fp(e)g([..]=)g(P)437 b Ft(and)h Fr(f)p Fp(def)582
b(f)p Fr(g)p Fp(e)0 13886 y(\(..\):T)g(=)f(P)p Ft(.)394
b(The)g(Nomadic)h(Pict)f(compiler)h(will)g(use)d(a)i(new)f
(de\014nition)i Fp(P)f Ft(to)g(generate)g(the)f(executable)i(co)31
b(de)393 b(for)g Fp(f)p Ft(,)0 15215 y(th)-31 b(us)369
b(replacing)i(an)-31 b(y)370 b(implemen)-31 b(tations)373
b(of)c Fp(f)h Ft(whic)-31 b(h)370 b(w)-31 b(ere)369 b(in)g(the)h
(original)h(program.)p eop end
%%Page: 14 15
TeXDict begin 14 14 bop 0 9409 a Fj(Chapter)861 b(3)0
14944 y FA(Deriv)-86 b(ed)1033 b(F)-258 b(orms)1033 b(and)g(Idioms)0
20700 y Ft(Belo)-31 b(w)458 b(w)-31 b(e)457 b(giv)-31
b(e)457 b(some)g(useful)f(syn)-31 b(tactic)458 b(sugar)e(and)h
(programming)h(idioms.)756 b(Most)456 b(are)g(standard)h(distributed)g
(pro-)0 22029 y(gramming)505 b(idioms)f(suc)-31 b(h)502
b(as)h(remote)g(pro)31 b(cedure)502 b(calls)h(\(RPC\))h(and)f
(distributed)g(ob)61 b(jects;)571 b(other)503 b(idioms)h(are)f(more)0
23357 y(exp)31 b(erimen)-31 b(tal)371 b(suc)-31 b(h)369
b(as)g(comp)31 b(osite)371 b(ev)-31 b(en)g(ts.)0 27018
y Fy(3.1)1793 b(Syn)-50 b(tactic)599 b(Sugar)0 29442
y Ft(The)326 b(core)g(language)i(describ)31 b(ed)325
b(in)h(Chapters)g(1)h(and)f(2)g(lac)-31 b(ks)327 b(some)f(constructs)g
(whic)-31 b(h)327 b(are)f(useful)g(in)g(programming.)480
b(In)0 30770 y(order)390 b(to)h(a)-31 b(v)g(oid)392 b(complicating)i
(the)d(seman)-31 b(tics)391 b(of)g(the)g(core)f(language,)398
b(additional)c(programming)e(features)f(are)f(made)0
32099 y(as)336 b Fq(syntactic)367 b(sugar)p Ft(,)343
b(i.e.)482 b(there)337 b(is)f(an)h(unam)-31 b(biguous)338
b(translation)h(of)e(the)g(co)31 b(de)336 b(with)i(the)f(additions)h
(in)-31 b(to)338 b(co)31 b(de)337 b(without)0 33427 y(them.)715
b(Belo)-31 b(w)444 b(w)-31 b(e)444 b(describ)31 b(e)442
b(some)h(syn)-31 b(tactic)445 b(sugar.)714 b(Most)443
b(are)g(standard)h(Pict)g(forms;)480 b(some)444 b(are)f(new.)714
b(In)-31 b(terested)0 34755 y(readers)333 b(are)h(directed)g(to)h(a)f
(formal)i(description)e(of)h(the)f(source-to-source)g(translations)i
(in)e(Pict)h(in)g([PT97b)r(],)342 b(where)334 b(all)0
36084 y(Pict)370 b(forms)g(are)f(describ)31 b(ed)368
b(in)h(detail.)0 39183 y Fh(3.1.1)1495 b(Pro)42 b(cess)499
b(abstractions)j(and)d(a)f(functional)i(st)-42 b(yle)0
41115 y Ft(In)361 b(Pict,)k(w)-31 b(e)362 b(can)h(de\014ne)e
Fq(pr)-57 b(o)g(c)g(ess)389 b(abstr)-57 b(actions)p Ft(,)364
b(i.e.)490 b(pro)31 b(cess)361 b(expressions)g(pre\014xed)h(b)-31
b(y)362 b(patterns,)i(via)f(the)f(declaration)0 42333
y(k)-31 b(eyw)g(ord)370 b Fp(def)p Ft(,)g(as)f(in)8369
44436 y Fi(def)523 b(f)g([x:T1)g(y:T2])g(=)g(\(x!y)g(|)g(x!y\))0
46539 y Ft(and)334 b(instances)h(are)f(created)g(using)g(the)h(same)f
(syn)-31 b(tax)335 b(as)f(output)h(expressions,)341 b(as)334
b(in)h Fp(f![a)581 b(b])p Ft(.)481 b(The)335 b(name)f
Fp(f)g Ft(has)g(t)-31 b(yp)31 b(e)0 47757 y Fp(/[T1)582
b(T2])p Ft(.)493 b(Recursiv)-31 b(e)369 b(and)g(m)-31
b(utually)372 b(recursiv)-31 b(e)368 b(de\014nitions)8369
49860 y Fi(def)523 b(f)g([..])g(=)1046 b(...)g(g![..])g(...)8369
51078 y(and)523 b(g)g([..])g(=)1046 b(...)g(f![..])g(...)0
53292 y Ft(are)369 b(also)h(allo)-31 b(w)g(ed.)1660 54509
y(A)372 b Fq(functional)400 b(style)455 b Ft(is)372 b(supp)31
b(orted)371 b(b)-31 b(y)373 b(a)f(small)h(extension)g(to)g(the)f(syn)
-31 b(tactic)374 b(class)e(of)g(abstractions.)503 b(F)-92
b(or)371 b(example,)0 55727 y(w)-31 b(e)429 b(can)h(replace)f(a)g(pro)
31 b(cess)428 b(abstraction)j Fp(def)581 b(f)h([a1:T1)g(a2:T2)g(r:/T])g
(=)f(r!v)p Ft(,)445 b(where)428 b Fp(v)h Ft(is)g(some)g(complex)i(v)-61
b(alue,)0 56945 y(b)-31 b(y)369 b(a)h(`function)h(de\014nition')8369
59048 y Fi(def)523 b(f)g(\(a1:T1)g(a2:T2\))g(:)g(T)g(=)g(v)0
61262 y Ft(and)362 b(a)-31 b(v)g(oid)364 b(explicitly)g(giving)g(a)e
(name)g(to)h(the)f(result)g(c)-31 b(hannel)362 b Fp(r)p
Ft(.)491 b(F)-92 b(or)361 b(simplicit)-31 b(y)-92 b(,)366
b(w)-31 b(e)362 b(often)h(confuse)f(pro)31 b(cess)360
b(abstrac-)0 62590 y(tions)370 b(as)f(ab)31 b(o)-31 b(v)g(e)371
b(and)e(pro)31 b(cess)368 b(abstractions)j(whic)-31 b(h)370
b(do)f(not)h(return)f(an)-31 b(y)370 b(v)-61 b(alues,)369
b(using)h(a)f(single)h(term)g(\\functions".)1660 63808
y(W)-92 b(e)369 b(can)g(de\014ne)g(anon)-31 b(ymous)371
b(abstractions)g(as)e(in)g(Pict)8369 65911 y Ff(n)p Fi([...])523
b(=)g(...)0 68014 y Ft(F)-92 b(or)368 b(example,)j(b)31
b(elo)-31 b(w)371 b(is)e(a)g(function)i Fp(f)e Ft(whic)-31
b(h)370 b(accepts)g(pro)31 b(cess)368 b(abstractions)i(of)g(t)-31
b(yp)31 b(e)370 b Fp(String)582 b(->)f(Sig)8369 70117
y Fi(def)523 b(f)g(g:/[String)g(Sig])g(=)g(\(\(g)g("foo"\);)h(\(\)\))
25447 74521 y Ft(14)p eop end
%%Page: 15 16
TeXDict begin 15 15 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(15)0 1107 y(W)-92 b(e)431 b(can)h(create)g(an)g
(instance)h(of)f Fp(f)f Ft(passing)i(an)f(anon)-31 b(ymous)433
b(function)g(whic)-31 b(h)433 b(prin)-31 b(ts)432 b(an)g(argumen)-31
b(t)433 b Fp(s)f Ft(and)g(sends)f(an)0 2325 y(ac)-31
b(kno)g(wledmen)g(t)373 b(signal)d(on)g(c)-31 b(hannel)370
b Fp(r)f Ft(as)g(follo)-31 b(ws)8369 4273 y Fi(f!)p Ff(n)p
Fi([s:String)523 b(r:Sig])g(=)g(\(\(pr)g(s\);)g(r![]\))1660
6332 y Ft(F)-92 b(unctions)413 b(can)h(b)31 b(e)412 b(e\013ectiv)-31
b(ely)415 b(used)d(in)h(Nomadic)i(Pict)f(b)-31 b(y)413
b Fq(al)57 b(l)526 b Ft(agen)-31 b(ts)414 b(whic)-31
b(h)414 b(ha)-31 b(v)g(e)414 b(b)31 b(een)412 b(de\014ned)h(in)g(the)g
(lexical)0 7660 y(scop)31 b(e)323 b(of)i(function)g(de\014nitions.)479
b(So)324 b(formally)i(it)e(lo)31 b(oks)325 b(as)e(though)i(eac)-31
b(h)325 b(agen)-31 b(t)325 b(has)f(a)g(priv)-61 b(ate)324
b(cop)-31 b(y)324 b(of)h(eac)-31 b(h)324 b(function)h(it)0
8989 y(migh)-31 b(t)306 b(ev)-31 b(er)304 b(use.)470
b(Similarly)-92 b(,)320 b(an)-31 b(y)305 b(public)g(library)f
(functions)h(can)g(b)31 b(e)303 b(used)h(in)g(all)h(agen)-31
b(ts)306 b(de\014ned)d(in)i(the)f(program)h(whic)-31
b(h)0 10317 y(has)456 b(imp)31 b(orted)456 b(these)g(libraries.)753
b(Declarations)457 b(of)f(library)h(mo)31 b(dules)456
b(precede)f(lexically)j(an)-31 b(y)457 b(program)f(declarations,)0
11645 y(therefore)314 b(the)g(names)f(of)i(library)f(functions)g(are)g
(visible)h(inside)e(an)-31 b(y)315 b(agen)-31 b(t)315
b(in)f(a)g(normal)h(w)-31 b(a)g(y)-92 b(,)326 b(just)314
b(as)f(an)-31 b(y)315 b(other)e(names)0 12974 y(de\014ned)369
b(in)g(the)h(lexical)h(scop)31 b(e.)492 b(All)370 b(functions)h
(de\014ned)d(inside)i(an)f(agen)-31 b(t)371 b(are)e(priv)-61
b(ate)370 b(to)g(this)f(agen)-31 b(t.)0 16039 y Fh(3.1.2)1495
b(Declaration)501 b(v)-83 b(alues)499 b(and)g(applications)0
17972 y Ft(The)369 b(syn)-31 b(tactic)371 b(category)g(of)f(v)-61
b(alues)369 b(is)g(extended)h(with)g Fq(de)-57 b(clar)g(ation)397
b(values)459 b Ft(of)370 b(the)g(form)f Fp(\(D)582 b(v\))p
Ft(,)369 b(as)h(in)8369 19920 y Fi(c!\(new)523 b(d:T)g(d\))0
21979 y Ft(The)251 b(complex)i(v)-61 b(alue)251 b(is)g
Fq(always)341 b Ft(ev)-61 b(aluated)252 b(to)g(yield)g(a)f(simple)h(v)
-61 b(alue,)276 b(whic)-31 b(h)252 b(is)f(substituted)h(for)f(the)g
(complex)i(expression;)0 23307 y(the)369 b(pro)31 b(cess)368
b(ab)31 b(o)-31 b(v)g(e)371 b(creates)e(a)g(fresh)g(c)-31
b(hannel)370 b Fp(d)f Ft(and)g(sends)g(it)h(o\013)f(along)i
Fp(c)p Ft(,)e(as)g(in)h Fp(\(new)582 b(d:T)f(c!d\))p
Ft(.)1660 24525 y(In)455 b(v)-61 b(alue)455 b(expressions,)477
b(w)-31 b(e)455 b(allo)-31 b(w)458 b(the)d Fq(applic)-57
b(ation)540 b Ft(syn)-31 b(tax)456 b Fp(\(v)582 b(v1)f(...)1163
b(v2\))p Ft(.)750 b(F)-92 b(or)455 b(example,)478 b(w)-31
b(e)456 b(can)f(de\014ne)g(a)0 25742 y(pro)31 b(cess)368
b(abstraction)8369 27691 y Fi(def)523 b(double)g([i:Int)g(r:/Int])g(=)g
(+![i)h(i)f(r])0 29750 y Ft(and)366 b(then,)h(in)f(the)g(scop)31
b(e)365 b(of)h(the)g(declaration,)j(write)e Fp(\(double)582
b(i\))366 b Ft(as)f(a)h(v)-61 b(alue,)367 b(dropping)g(the)f(explicit)h
(result)f(c)-31 b(hannel)0 31078 y Fp(r)p Ft(,)509 b(e.g.)830
b Fp(printi!\(double)583 b(2\))481 b Ft(w)-31 b(ould)483
b(compute)f Fp(4)f Ft(and)g(prin)-31 b(t)482 b(it)g(out)f(on)h(the)f
(console,)510 b(using)482 b(the)f(library)h(c)-31 b(hannel)0
32406 y Fp(printi)p Ft(.)0 35472 y Fh(3.1.3)1495 b(V)-125
b(alue)500 b(declarations)0 37404 y Ft(A)369 b(declaration)8369
39353 y Fi(val)523 b(p=v)0 41412 y Ft(ev)-61 b(aluates)257
b(a)f(complex)i(v)-61 b(alue)256 b Fp(v)g Ft(and)h(names)f(its)h
(result.)454 b(F)-92 b(ormally)g(,)281 b(a)256 b Fp(val)g
Ft(declaration)j Fp(\(val)581 b(p=v)h(e\))256 b Ft(is)g(translated)h
(using)0 42740 y(the)381 b(con)-31 b(tin)g(uation-passing)385
b(translation,)h(so)381 b(that)h(the)f(b)31 b(o)g(dy)381
b Fp(e)f Ft(app)31 b(ears)381 b(inside)g(an)g(input)g(pre\014x)f(on)h
(the)g(con)-31 b(tin)g(uation)0 44068 y(c)g(hannel)361
b(whic)-31 b(h)361 b(is)f(used)f(to)i(comm)-31 b(unicate)363
b(a)d(simple)h(v)-61 b(alue)360 b(ev)-61 b(aluated)362
b(from)e(the)g(complex)i(v)-61 b(alue)360 b Fp(v)p Ft(.)490
b(This)360 b(means)h(that)0 45397 y Fp(val)463 b Ft(declarations)h(are)
e Fq(blo)-57 b(cking)98 b Ft(:)681 b(the)462 b(b)31 b(o)g(dy)463
b Fp(e)f Ft(cannot)i(pro)31 b(ceed)462 b(un)-31 b(til)464
b(the)e(bindings)i(in)-31 b(tro)31 b(duced)463 b(b)-31
b(y)462 b(the)h Fp(val)g Ft(ha)-31 b(v)g(e)0 46725 y(actually)372
b(b)31 b(een)368 b(established.)0 49790 y Fh(3.1.4)1495
b(Other)499 b(syn)-42 b(tactic)500 b(sugar)0 51723 y
Ft(The)411 b(idiom)i(\\in)-31 b(v)g(ok)g(e)413 b(an)e(op)31
b(eration,)423 b(w)-31 b(ait)413 b(for)e(a)g(signal)h(\(i.e.)619
b(a)411 b(n)-31 b(ull)412 b(v)-61 b(alue)411 b Fp([])p
Ft(\))h(as)e(a)h(result,)422 b(and)411 b(con)-31 b(tin)g(ue")413
b(app)31 b(ears)0 52941 y(frequen)-31 b(tly)-92 b(,)371
b(so)e(it)h(is)f(con)-31 b(v)g(enien)g(t)371 b(to)f(in)-31
b(tro)31 b(duce)370 b Fp(;)f Ft(\(semi-colon\),)k(as)c(in)8369
54889 y Fi(\(v1)523 b(...\);)g(\(v2)g(...\))0 56948 y
Ft(for)369 b(the)h(sequence)e(of)i(op)31 b(erations)370
b Fp(v1)g Ft(and)f Fp(v2)p Ft(.)0 60013 y Fh(3.1.5)1495
b(Matc)-42 b(hing)500 b(v)-83 b(arian)-42 b(ts)500 b(and)f(dynamic)h(v)
-83 b(alues)0 61946 y Ft(In)387 b(Nomadic)j(Pict)f(programs)g(w)-31
b(e)388 b(use)g(a)g(v)-61 b(arian)-31 b(t)389 b(t)-31
b(yp)31 b(e)389 b Fp([label1>)582 b(T1)g(...)1162 b(labeln>)582
b(Tn])389 b Ft(so)f(often,)394 b(that)389 b(it)g(is)f(con-)0
63163 y(v)-31 b(enien)g(t)371 b(to)f(in)-31 b(tro)31
b(duce)369 b(a)h(new)f(construct)h Fp(switch)p Ft(,)g(as)f(in)8369
65112 y Fi(c?v=)523 b(switch)g(v)g(of)11507 66329 y(\()12553
67547 y(label1>)g(p1)g(->)g(P1)13076 68765 y(...)12553
69982 y(labeln>)g(pn)g(->)g(Pn)11507 71200 y(\))p eop
end
%%Page: 16 17
TeXDict begin 16 16 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(16)0 1107 y(that)370 b(matc)-31
b(hes)370 b(a)f(v)-61 b(alue)369 b Fp(v)g Ft(of)g(v)-61
b(arian)-31 b(t)370 b(t)-31 b(yp)31 b(e)369 b(with)h(all)g(the)f(v)-61
b(arian)-31 b(ts,)371 b(c)-31 b(ho)31 b(oses)368 b(the)h(one)g(whic)-31
b(h)370 b(has)f(the)g(same)g(lab)31 b(el)370 b(as)e Fp(v)p
Ft(,)0 2435 y(and)h(pro)31 b(ceeds)369 b(with)h(a)g(pro)31
b(cess)368 b Fp(P)h Ft(of)g(the)h(matc)-31 b(hed)370
b(v)-61 b(arian)-31 b(t.)1660 3653 y(W)-92 b(e)369 b(can)g(compare)h
(dynamic)h(v)-61 b(alues)369 b(at)h(run)-31 b(time)370
b(using)g(the)f(construct)h Fp(typecase)p Ft(,)g(as)g(in)8369
5434 y Fi(c?v=)523 b(typecase)g(v)g(of)12030 6651 y(s:String)g(->)g
(print!s)12030 7869 y([s:String)g(d:^String])g(->)h(d!s)10984
9087 y(else)f(print!"Type)g(not)g(recognised.")0 10978
y Ft(where)249 b Fp(c)g Ft(has)g(t)-31 b(yp)31 b(e)249
b Fi(^Dyn)p Ft(.)453 b(Instances)249 b(of)g(dynamic)i(v)-61
b(alues)249 b(are)g(created)g(using)g Fp(\(dynamic)583
b(v\))p Ft(.)452 b(F)-92 b(or)249 b(example,)275 b Fp(c!\(dynamic)0
12306 y(["ala")582 b(x]\))428 b Ft(in)g(parallel)h(with)g(the)e(pro)31
b(cess)427 b(term)g(ab)31 b(o)-31 b(v)g(e)429 b(ma)-31
b(y)429 b(sync)-31 b(hronise,)442 b(resulting)429 b(in)e
Fp("ala")i Ft(b)31 b(eing)427 b(sen)-31 b(t)428 b(along)0
13634 y(the)509 b(c)-31 b(hannel)509 b Fp(x)p Ft(,)543
b Fp(c!\(dynamic)583 b("ala"\))509 b Ft(w)-31 b(ould)510
b(prin)-31 b(t)508 b Fp("ala")p Ft(,)545 b(but)508 b(an)-31
b(y)509 b(other)g(\(dynamic\))h(v)-61 b(alue)509 b(sen)-31
b(t)509 b(on)f Fp(c)g Ft(w)-31 b(ould)0 14963 y(prin)g(t)338
b(an)h(error)d(message.)483 b(The)338 b(constructs)g
Fp(switch)h Ft(and)f Fp(typecase)h Ft(are)f(desugared)f(using)i(the)f
(v)-61 b(alue)338 b(equalit)-31 b(y)340 b(testing)0 16291
y(primitiv)-31 b(e.)1024 b(In)545 b(the)h(examples)h(ab)31
b(o)-31 b(v)g(e,)591 b Fp(switch)547 b Ft(and)f Fp(typecase)g
Ft(are)g(pro)31 b(cess)544 b(terms)i(but)f(w)-31 b(e)547
b(can)e(also)i(use)e(these)0 17620 y(constructs)369 b(in)h(expressions)
e(yielding)j(a)f(v)-61 b(alue.)0 21211 y Fy(3.2)1793
b(Pro)50 b(cedures)0 23525 y Ft(Within)369 b(a)f(single)g(agen)-31
b(t)369 b(one)f(can)g(express)f(`pro)31 b(cedures')367
b(in)h(Nomadic)i(Pict)f(as)e(simple)i(replicated)g(inputs.)492
b(Replicated)0 24742 y(inputs)343 b(are)g(useful)h(to)f(express)f(serv)
-31 b(er)342 b(agen)-31 b(ts.)486 b(Belo)-31 b(w)344
b(is)f(a)h(\014rst)e(attempt)j(at)f(a)g(pair-serv)-31
b(er,)348 b(that)c(receiv)-31 b(es)343 b(v)-61 b(alues)343
b Fp(x)h Ft(on)0 25960 y(c)-31 b(hannel)339 b Fp(pair)f
Ft(and)g(returns)f(t)-31 b(w)g(o)340 b(copies)e(of)h
Fp(x)f Ft(on)g(c)-31 b(hannel)339 b Fp(result)p Ft(,)345
b(together)339 b(with)h(a)e(single)h(in)-31 b(v)g(o)31
b(cation)341 b(of)d(the)g(serv)-31 b(er.)8369 27740 y
Fi(new)523 b(pair)1569 b(:)523 b(^T)8369 28958 y(new)g(result)g(:)g
(^[T)g(T])8369 30176 y(\()g(pair?*x)g(=)g(result![x)g(x])8369
31393 y(|)g(pair!v)8369 32611 y(|)g(result?z)g(=)g(...)g(z)g(...)g(\))0
34392 y Ft(This)279 b(pair-serv)-31 b(er)279 b(can)g(only)h(b)31
b(e)278 b(in)-31 b(v)g(ok)g(ed)281 b(sequen)-31 b(tially|there)282
b(is)d(no)g(asso)31 b(ciation)281 b(b)31 b(et)-31 b(w)g(een)280
b(m)-31 b(ultiple)281 b(requests)d(and)i(their)0 35609
y(corresp)31 b(onding)406 b(results.)604 b(A)406 b(b)31
b(etter)406 b(idiom)i(is)f(b)31 b(elo)-31 b(w,)417 b(in)406
b(whic)-31 b(h)408 b(new)e(result)g(c)-31 b(hannels)407
b(are)f(used)g(for)g(eac)-31 b(h)407 b(in)-31 b(v)g(o)31
b(cation.)0 36827 y(The)369 b(pair-serv)-31 b(er)369
b(has)g(a)h(p)31 b(olymorphic)371 b(t)-31 b(yp)31 b(e)369
b(\()p Fp(X)h Ft(is)f(a)g(t)-31 b(yp)31 b(e)370 b(v)-61
b(ariable\),)371 b(instan)-31 b(tiated)372 b(to)e Fp(Int)g
Ft(b)-31 b(y)369 b(a)h(clien)-31 b(t)370 b(pro)31 b(cess.)8369
38608 y Fi(type)523 b(\(Res)g(X\))g(=)g(^[X)g(X])8369
39825 y(new)g(pair)g(:)g(^[#X)g(X)g(\(Res)g(X\)])8369
41043 y(\()g(pair?*[#X)g(x)g(r])g(=)g(r![x)g(x])8369
42261 y(|)g(\(new)g(result:\(Res)g(Int\))1046 b(\(pair![1)524
b(result])f(|)g(result?z)g(=...)g(z)g(...\)\))8369 43478
y(|)g(\(new)g(result:\(Res)g(Int\))1046 b(\(pair![2)524
b(result])f(|)g(result?z)g(=...)g(z)g(...\)\)\))0 45259
y Ft(The)333 b(example)i(can)e(easily)i(b)31 b(e)332
b(lifted)j(to)f(remote)g(pro)31 b(cedure)332 b(calls)i(b)31
b(et)-31 b(w)g(een)334 b(agen)-31 b(ts.)482 b(W)-92 b(e)333
b(sho)-31 b(w)333 b(t)-31 b(w)g(o)335 b(v)-31 b(ersions,)341
b(\014rstly)334 b(for)0 46476 y(lo)31 b(cation-dep)g(enden)-31
b(t)384 b(RPC)d(b)31 b(et)-31 b(w)g(een)382 b(static)g(agen)-31
b(ts)382 b(and)g(secondly)f(for)g(lo)31 b(cation-indep)g(enden)-31
b(t)384 b(RPC)e(b)31 b(et)-31 b(w)g(een)382 b(agen)-31
b(ts)0 47694 y(that)370 b(ma)-31 b(y)371 b(b)31 b(e)369
b(migrating.)495 b(In)369 b(the)g(\014rst,)g(the)h(serv)-31
b(er)368 b(b)31 b(ecomes)8369 49475 y Fi(new)523 b(pair)g(:)g(^[#X)g(X)
g(\(Res)g(X\))g(Agent)h(Site])10461 50692 y(pair?*[#X)f(x)g(r)g(b)g(s])
g(=)g(r![x)h(x])0 52473 y Ft(whic)-31 b(h)436
b(returns)d(the)i(result)g(using)g(lo)31 b(cation-dep)g(enden)-31
b(t)438 b(comm)-31 b(unication)438 b(to)e(the)f(agen)-31
b(t)436 b Fp(b)f Ft(on)g(site)g Fp(s)g Ft(receiv)-31
b(ed)435 b(in)g(the)0 53690 y(request.)492 b(If)369 b(the)h(serv)-31
b(er)368 b(is)h(part)h(of)f(agen)-31 b(t)371 b Fp(a1)e
Ft(on)h(site)f Fp(s1)g Ft(it)h(w)-31 b(ould)371 b(b)31
b(e)369 b(in)-31 b(v)g(ok)g(ed)371 b(from)f(agen)-31
b(t)370 b Fp(a2)g Ft(on)f(site)h Fp(s2)f Ft(b)-31 b(y)8369
55471 y Fi(new)523 b(result)g(:)g(\(Res)g(Int\))9415
56689 y(\()g(pair![7)g(result)g(a2)h(s2])9415
57906 y(|)f(result?z)g(=)g(...z...)g(\))0 59687 y Ft(If)484
b(agen)-31 b(ts)485 b Fp(a1)g Ft(or)f Fp(a2)g Ft(can)h(migrate)h(this)f
(can)f(fail.)840 b(A)484 b(more)h(robust)f(idiom)i(is)e(easily)h
(expressible)g(in)f(the)h(high-lev)-31 b(el)0 60905 y(language|the)372
b(serv)-31 b(er)368 b(b)31 b(ecomes)8369 62685 y Fi(new)523
b(pair)g(:)g(^[#X)g(X)g(\(Res)g(X\))g(Agent])10461 63903
y(pair?*[#X)g(x)g(r)g(b])g(=)g(r@b![x)g(x])0 65683 y
Ft(whic)-31 b(h)407 b(returns)e(the)i(result)f(using)g(lo)31
b(cation-indep)g(enden)-31 b(t)409 b(comm)-31 b(unication)410
b(to)d(the)g(agen)-31 b(t)407 b Fp(b)p Ft(.)603 b(If)406
b(the)h(serv)-31 b(er)405 b(is)h(part)g(of)0 66901 y(agen)-31
b(t)371 b Fp(a1)e Ft(it)h(w)-31 b(ould)371 b(b)31 b(e)368
b(in)-31 b(v)g(ok)g(ed)371 b(from)f(agen)-31 b(t)371
b Fp(a2)e Ft(b)-31 b(y)8369 68682 y Fi(new)523 b(result)g(:)g(\(Res)g
(Int\))9415 69899 y(\()g(pair@a1![3)g(result)g(a2])9415
71117 y(|)g(result?z=)g(...z...)g(\))p eop end
%%Page: 17 18
TeXDict begin 17 17 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(17)0 1107 y Fy(3.3)1793 b(Mobile)598
b(Agen)-50 b(ts)0 3532 y Ft(Nomadic)445 b(Pict)g(agen)-31
b(ts)444 b(are)f(lo)31 b(cated)445 b(at)f(sites)f(and)h(they)g(can)f
(freely)h(migrate)h(to)f(other)g(named)g(sites.)715 b(Agen)-31
b(ts)444 b(carry)0 4860 y(their)361 b(computation)j(state)e(with)g
(themselv)-31 b(es)362 b(and)f(their)g(execution)h(is)f(resumed)g(on)g
(a)g(new)g(site)g(from)h(the)f(p)31 b(oin)-31 b(t)362
b(where)0 6188 y(they)401 b(stopp)31 b(ed)401 b(on)g(previous)f(site.)
587 b(Mobile)402 b(agen)-31 b(ts)402 b(can)e(exc)-31
b(hange)402 b(messages)f(on)g(c)-31 b(hannels.)587 b(A)401
b(c)-31 b(hannel)401 b(name)g(can)g(b)31 b(e)0 7517 y(created)369
b(dynamically)k(and)c(sen)-31 b(t)369 b(to)h(other)g(agen)-31
b(ts)370 b(whic)-31 b(h)370 b(can)g(use)e(it)i(for)g(comm)-31
b(unication.)1660 8734 y(Belo)g(w)342 b(is)d(a)h(program)g(in)g(the)g
(high-lev)-31 b(el)342 b(language)g(sho)-31 b(wing)341
b(ho)-31 b(w)340 b(a)g(mobile)h(agen)-31 b(t)341 b(can)f(b)31
b(e)339 b(expressed.)482 b(It)340 b(de\014nes)f(a)0 9952
y(function)g Fp(spawn)e Ft(\(whic)-31 b(h)339 b(is)e(assumed)g(to)h(b)
31 b(e)337 b(part)g(of)h(an)f(agen)-31 b(t)339 b Fp(a)p
Ft(\),)344 b(con)-31 b(taining)340 b(a)e(de\014nition)h(of)e(agen)-31
b(t)339 b Fp(b)p Ft(.)482 b(The)337 b(function)0 11170
y(is)369 b(in)-31 b(v)g(ok)g(ed)371 b(t)-31 b(wice,)371
b(eac)-31 b(h)370 b(time)g(creating)h(a)e(new)h(agen)-31
b(t)370 b Fp(b)8369 13273 y Fi(new)523 b(answer)g(:)g(^String)8369
14490 y(def)g(spawn)g([s:Site)g(prompt:String])h(=)9415
15708 y(\(agent)f(b)g(=)10984 16926 y(\(migrate)g(to)g(s)11507
18143 y(answer@a!\(sys.read)g(prompt\)\))9938 19361 y(in)10984
20579 y(\(\)\))8369 21796 y(\()g(spawn)g(!)g([s1)g("How)g(are)g(you?")g
(])8369 23014 y(|)g(spawn)g(!)g([s2)g("When)g(does)g(the)g(meeting)h
(start?")f(])8369 24232 y(|)g(answer)g(?*)g(s)g(=)g(print!s)8369
25449 y(...)0 27663 y Ft(whic)-31 b(h)394 b(migrates)h(to)f(site)f
Fp(s)p Ft(,)400 b(passed)393 b(as)g(the)g(parameter)h(of)g(the)f
(function)i Fp(spawn)p Ft(.)565 b(After)394 b(migration,)402
b(agen)-31 b(t)395 b Fp(b)e Ft(prin)-31 b(ts)394 b(a)0
28992 y(string)363 b Fp(prompt)h Ft(and)f(reads)f(from)i(a)f(standard)g
(input.)491 b(The)363 b(input)h(read)f(on)g(site)g Fp(s)g
Ft(is)g(sen)-31 b(t)363 b(bac)-31 b(k)363 b(to)h(agen)-31
b(t)364 b Fp(a)f Ft(on)g Fp(answer)0 30320 y Ft(\(using)370
b(lo)31 b(cation-indep)g(enden)-31 b(t)372 b(output\))f(and)f(prin)-31
b(ted)369 b(out.)1660 31648 y(The)472 b(lo)31 b(cation-indep)g(enden)
-31 b(t)475 b(message)d(deliv)-31 b(ery)472 b(\(including)i(an)-31
b(y)472 b(in)-31 b(ternal)473 b(enco)31 b(dings)472 b(of)g(agen)-31
b(t)473 b(and)f(site)f(names)0 32977 y(for)k(di\013eren)-31
b(t)476 b(addressing)f(sc)-31 b(hemas\))476 b(is)f(not)g(part)h(of)g
(the)f(run)-31 b(time)476 b(system)f(|)g(it)h(has)f(to)h(b)31
b(e)475 b(enco)31 b(ded)475 b(explicitly)j(in)0 34305
y(the)391 b(language,)399 b(using)391 b(the)f(language)j(for)e
(expressing)f(enco)31 b(dings)392 b(describ)31 b(ed)389
b(in)i(Chapter)h(2.)557 b(In)390 b(Chapter)i(4,)k(w)-31
b(e)392 b(giv)-31 b(e)392 b(a)0 35633 y(complete)371
b(example)f(program)g(to)g(illustrate)h(the)f(idea.)0
39294 y Fy(3.4)1793 b(Lo)50 b(c)-50 b(ks,)598 b(Metho)50
b(ds)599 b(and)f(Distributed)j(Ob)100 b(jects)0 41608
y Ft(The)369 b(language)j(inherits)d(a)h(common)h(idiom)g(for)e
(expressing)g(concurren)-31 b(t)369 b(ob)61 b(jects)370
b(from)g(Pict)g([PT95)s(].)493 b(The)369 b(pro)31 b(cess)8369
43711 y Fi(new)523 b(lock:^StateType)9415 44929 y(\()g
(lock!initialState)9415 46146 y(|)g(method1?*arg)g(=)g(\(lock?state)h
(=)f(...)1046 b(lock!state')g(...\))9415 47364 y(...)9415
48582 y(|)523 b(methodn?*arg)g(=)g(\(lock?state)h(=)f(...)1046
b(lock!state'')523 b(...\)\))0 50796 y Ft(is)291 b(analogous)i(to)e(an)
g(ob)61 b(ject)292 b(with)g(metho)31 b(ds)291 b Fp(method1)p
Fo(:)184 b(:)g(:)t Fp(methodn)292 b Ft(and)e(a)h(state)h(of)f(t)-31
b(yp)31 b(e)291 b Fp(StateType)p Ft(.)468 b(Mutual)292
b(exclusion)0 52124 y(b)31 b(et)-31 b(w)g(een)350 b(the)f(b)31
b(o)g(dies)349 b(of)g(the)g(metho)31 b(ds)350 b(is)e(enforced)h(b)-31
b(y)349 b(k)-31 b(eeping)351 b(the)e(state)g(as)g(an)g(output)h(on)g(a)
f(lo)31 b(c)-31 b(k)350 b(c)-31 b(hannel;)357 b(the)349
b(lo)31 b(c)-31 b(k)0 53452 y(is)410 b(free)g(if)g(there)g(is)h(an)f
(output)h(and)g(tak)-31 b(en)411 b(otherwise.)616 b(F)-92
b(or)410 b(more)g(detailed)i(discussion)e(of)h(ob)61
b(ject)412 b(represen)-31 b(tations)411 b(in)0 54781
y(pro)31 b(cess)403 b(calculi,)414 b(the)404 b(reader)f(is)h(referred)e
(to)j([PT95)r(].)597 b(It)404 b(con)-31 b(tains)405 b(an)f(example)h
(program)g(illustrating)h(ho)-31 b(w)405 b(a)f(simple)0
56109 y Fq(r)-57 b(efer)g(enc)g(e)487 b(c)-57 b(el)57
b(l)580 b Ft(abstraction)467 b(can)f(b)31 b(e)465 b(de\014ned)g(in)h
(Pict.)782 b(Belo)-31 b(w)467 b(w)-31 b(e)466 b(rewrite)g(the)f
(example)i(to)f(sho)-31 b(w)466 b(ho)-31 b(w)467 b Fq(distribute)-57
b(d)0 57437 y(obje)g(cts)470 b Ft(can)379 b(b)31 b(e)379
b(expressed)e(in)j(Nomadic)g(Pict.)523 b(The)379 b(program)h(uses)e
(mobile)j(agen)-31 b(ts)380 b(and)f(man)-31 b(y)380 b(of)f(the)g(deriv)
-31 b(ed)380 b(forms)0 58766 y(describ)31 b(ed)368 b(in)i(previous)f
(sections.)1660 59983 y(A)426 b(reference)f(cell)i(can)f(b)31
b(e)426 b(mo)31 b(deled)426 b(b)-31 b(y)427 b(an)f(agen)-31
b(t)427 b(with)g(t)-31 b(w)g(o)428 b(pro)31 b(cedures)425
b(connecting)i(it)g(to)g(the)f(outside)h(w)-31 b(orld)427
b({)0 61201 y(one)387 b(for)g(receiving)h Fp(set)f Ft(requests)f(and)h
(one)f(for)h(receiving)h Fp(get)f Ft(requests.)545 b(Belo)-31
b(w)388 b(our)f(cell)g(holds)g(an)g(in)-31 b(teger)388
b(v)-61 b(alue)387 b(\(in)0 62419 y(c)-31 b(hannel)370
b Fp(contents)p Ft(\))h(that)f(initially)j(con)-31 b(tains)371
b Fp(0)p Ft(.)8369 64522 y Fi(type)523 b(RefInt)g(=)8369
65740 y([)9415 66957 y(set=/[Agent)g(Int)g(Sig])9415
68175 y(get=/[Agent)g(/Int])8369 69393 y(])p eop end
%%Page: 18 19
TeXDict begin 18 18 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(18)8369 1107 y Fi(def)523 b(refInt)g([s:Site)g
(r:/RefInt])g(=)8369 2325 y(\()8892 3542 y(new)g(set:^[Agent)g(Int)g
(Sig])8892 4760 y(new)g(get:^[Agent)g(!Int])8892 7195
y(agent)g(refIntAg)g(=)8892 8413 y(\()9938 9631 y(new)g(contents:^Int)
9938 10848 y(run)g(contents!0)9938 12066 y(migrate)g(to)g(s)9938
13284 y(\()g(set?*[a:Agent)g(v:Int)g(c:Sig]=)h(contents?_)f(=)g
(\(contents!v)g(|)g(c![]\))9938 14501 y(|)g(get?*[a:Agent)g(res:!Int]=)
g(contents?v)h(=)f(\(contents!v)g(|)g(res@a!v\)\))8892
15719 y(\))8892 16936 y(r![)9938 18154 y(set)g(=)g Ff(n)p
Fi([a:Agent)g(v:Int)g(c:Sig])g(=)h(set@refIntAg![a)f(v)g(c])9938
19372 y(get)g(=)g Ff(n)p Fi([a:Agent)g(res:!Int])2092
b(=)524 b(get@refIntAg![a)f(res])8892 20589 y(]\))0 22567
y Ft(A)h(function)h Fp(refInt)f Ft(de\014nes)f(t)-31
b(w)g(o)526 b(metho)31 b(d)524 b(c)-31 b(hannels)525
b Fp(set)f Ft(and)g Fp(get)g Ft(and)g(creates)f(a)h(cell)h(agen)-31
b(t)525 b Fp(refIntAg)g Ft(whic)-31 b(h)0 23785 y(immediately)315
b(migrates)d(to)g(site)g Fp(s)p Ft(.)473 b(The)312 b(cell)g(agen)-31
b(t)313 b(main)-31 b(tains)313 b(the)f(in)-31 b(v)-61
b(arian)-31 b(t)313 b(that,)325 b(at)312 b(an)-31 b(y)312
b(giv)-31 b(en)312 b(momen)-31 b(t,)326 b(there)311 b(is)g(at)0
25003 y(most)360 b(one)g(pro)31 b(cess)358 b(ready)h(to)h(send)f(on)g
Fp(contents)h Ft(and)g(when)f(metho)31 b(ds)360 b Fp(set)f
Ft(and)h Fp(get)f Ft(are)h(not)f(activ)-31 b(e,)364 b(there)359
b(is)g(exatly)0 26220 y(one)431 b(v)-61 b(alue)432 b(in)f
Fp(contents)p Ft(.)679 b(The)432 b(function)g Fp(refInt)g
Ft(returns)e(a)h(record)g(whic)-31 b(h)432 b(de\014nes)e(an)h(in)-31
b(terface)433 b(to)f(pro)31 b(cedures)429 b(of)0 27438
y(the)337 b(cell)h(agen)-31 b(t.)484 b(The)337 b(record)g(con)-31
b(tains)338 b(t)-31 b(w)g(o)339 b(lab)31 b(elled)339
b(\014elds)e(with)h(anon)-31 b(ymous)339 b(functions)f(implemen)-31
b(ting)341 b(the)c(lo)31 b(cation-)0 28656 y(indep)g(enden)-31
b(t)391 b(access)f(to)h(the)f(pro)31 b(cedures.)555 b(No)-31
b(w,)397 b(w)-31 b(e)391 b(can)f(create)h(t)-31 b(w)g(o)392
b(instances)f(\(ob)61 b(jects\))392 b Fp(cell1)f Ft(and)f
Fp(cell2)h Ft(of)g(our)0 29873 y(cell,)370 b(one)g(on)f(site)h
Fp(s1)f Ft(and)h(second)f(on)g(site)h Fp(s2)8369 31851
y Fi(val)523 b(cell1)g(=)g(\(refInt)g(s1\))8369 33069
y(val)g(cell2)g(=)g(\(refInt)g(s2\))8369 35504 y(agent)g(a)g(=)8369
36722 y(\()9415 37940 y(\(cell2.set)g(ag)g(5\);)9415
39157 y(\(prNL)g(\(int.toString)g(\(cell1.get)h(a\)\)\);)9415
40375 y(\(prNL)f(\(int.toString)g(\(cell2.get)h(a\)\)\);)9415
41593 y(\(\))8369 42810 y(\))0 44899 y Ft(and)345 b(use)f(them)h(in)g
(some)g(agen)-31 b(t)346 b Fp(a)p Ft(.)485 b(The)344
b(agen)-31 b(t)347 b Fp(a)d Ft(\014rst)g(stores)g Fp(5)h
Ft(at)g(ob)61 b(ject)346 b Fp(cell2)p Ft(,)351 b(then)345
b(gets)g(stored)f(v)-61 b(alues)345 b(from)g(b)31 b(oth)0
46227 y(ob)61 b(jects)370 b(and)g(prin)-31 b(ts)369 b(them)h(out.)493
b(Distributed)370 b(ob)61 b(jects)370 b(are)f(used)g(in)g(some)h
(Nomadic)h(Pict)f(libraries.)0 49861 y Fy(3.5)1793 b(Higher-Order)599
b(F)-149 b(unctions)0 52285 y Ft(The)343 b(core)g(Nomadic)h(Pict)g
(language)h(do)31 b(es)342 b(not)i(supp)31 b(ort)342
b(comm)-31 b(unication)347 b(of)c(activ)-31 b(e)345 b(pro)31
b(cesses)341 b(\(except)j(for)f(the)g(migra-)0 53614
y(tion)416 b(of)f(whole)h(agen)-31 b(ts\).)631 b(The)415
b(question)h(can)f(b)31 b(e)414 b(risen)g(wh)-31 b(y)416
b(not)f(to)h(treat)f(pro)31 b(cess)414 b(terms)h(as)f(v)-61
b(alues)415 b(whic)-31 b(h)416 b(could)f(b)31 b(e)0 54942
y(comm)-31 b(unicated)321 b(b)31 b(et)-31 b(w)g(een)320
b(agen)-31 b(ts,)330 b(similarly)321 b(to)e(the)g(class)f
(serialisation)j(mec)-31 b(hanism)320 b(in)f(Ja)-31 b(v)-61
b(a?)476 b(This)319 b(w)-31 b(ould)320 b(b)31 b(e)318
b(a)h(fairly)0 56271 y(serious)314 b(step)h(since)f(w)-31
b(e)315 b(had)g(to)g(de\014ne)g(the)f(execution)i(of)f(the)g(pro)31
b(cess)314 b(term)g(in)h(all)h(p)31 b(ossible)315 b(con)-31
b(texts.)476 b(In)314 b(fact,)327 b(w)-31 b(e)315 b(ha)-31
b(v)g(e)0 57599 y(already)430 b(tak)-31 b(en)429 b(a)g(similar)h(but)f
(mo)31 b(derate)430 b(step)e(allo)-31 b(wing)432 b(library)d(and)g
(other)g(function)h(names)f(de\014ned)f(in)h(one)g(place)0
58927 y(to)436 b(b)31 b(e)434 b(used)g(b)-31 b(y)435
b(all)h(\(p)31 b(oten)-31 b(tially)439 b(mobile\))e(agen)-31
b(ts)436 b(whic)-31 b(h)436 b(ha)-31 b(v)g(e)435 b(b)31
b(een)435 b(created)g(in)g(the)g(lexical)i(scop)31 b(e)434
b(of)h(the)g(function)0 60256 y(de\014nition.)481 b(F)-92
b(or)329 b(exp)31 b(erimen)-31 b(tal)332 b(reasons,)337
b(w)-31 b(e)330 b(allo)-31 b(w)332 b(functions)f(de\014ned)e(b)-31
b(y)330 b Fp(def)g Ft(to)h(b)31 b(e)329 b Fq(\014rst-class)419
b Ft(v)-61 b(alues,)338 b(whic)-31 b(h)330 b(means)0
61584 y(that)429 b(an)-31 b(y)429 b(priv)-61 b(ate)429
b(or)e(public)i(functions)g(can)f(b)31 b(e)428 b(sen)-31
b(t)428 b(to)h(other)f(agen)-31 b(ts,)444 b(whic)-31
b(h)429 b(can)g(receiv)-31 b(e)428 b(them)h(on)f(c)-31
b(hannels)429 b(and)0 62912 y(in)-31 b(v)g(ok)g(e)441
b(in)e(the)g(same)g(w)-31 b(a)g(y)441 b(as)e(their)g(o)-31
b(wn)440 b(functions.)703 b(Ho)-31 b(w)g(ev)g(er,)458
b(w)-31 b(e)439 b(mak)-31 b(e)440 b(no)g(attempt)h(to)e(de\014ne)g(the)
g(seman)-31 b(tics)440 b(of)0 64241 y(higher-order)367
b(functions)h(formally)-92 b(.)494 b(In)367 b(particular,)i(they)e(are)
g(not)h(part)g(of)f(the)h(Nomadic)h Fo(\031)40 b Ft(-calculus)367
b(de\014nition)i(whic)-31 b(h)0 65569 y(is)369 b(describ)31
b(ed)368 b(in)i([SWP99)q(].)1660 66787 y(Belo)-31 b(w)484
b(is)d(a)h(program)h(whic)-31 b(h)482 b(de\014nes)f(a)h(c)-31
b(hannel)483 b(carrying)f(functions)h(\(of)g(t)-31 b(yp)31
b(e)482 b Fp(String)582 b(->)f(String)p Ft(\))483 b(and)f(t)-31
b(w)g(o)0 68004 y(agen)g(ts)370 b Fp(a)f Ft(and)h Fp(b)p
Ft(:)8369 69982 y Fi(new)523 b(c:)g(^/[String)g(/String])p
eop end
%%Page: 19 20
TeXDict begin 19 19 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(19)8369 1107 y Fi(agent)523 b(a)g(=)8369
2325 y(\()9415 3542 y(def)g(f)g(\(s:String\))g(:)g(String)g(=)g(\(+$)h
(s)f(s\))9415 4760 y(c!f)8369 5978 y(\))8369
8413 y(and)g(b)g(=)8369 9631 y(\()10461 10848 y(...)9415
12066 y(c?f=)g(\(val)g(w)g(=)g(\(f)g("Voo"\))12553 13284
y(\(\)\))8369 14501 y(\))0 16656 y Ft(The)290 b(agen)-31
b(t)292 b Fp(a)e Ft(creates)g(a)h(priv)-61 b(ate)290
b(function)i Fp(f)e Ft(whic)-31 b(h)291 b(returns)e(a)i(string)f(giv)
-31 b(en)291 b(as)g(the)f(function)h(parameter,)308 b(concatenated)0
17985 y(with)346 b(itself,)351 b(and)344 b(sends)g(o\013)g(this)h
(function)h(to)f(agen)-31 b(t)346 b Fp(b)f Ft(whic)-31
b(h)345 b(is)g(supp)31 b(osed)343 b(to)i(b)31 b(e)344
b(on)h(site)g Fp(glia)p Ft(.)485 b(The)345 b(agen)-31
b(t)345 b Fp(b)g Ft(receiv)-31 b(es)0 19313 y(the)399
b(function)i(on)f(c)-31 b(hannel)400 b Fp(c)p Ft(,)407
b(and)399 b(in)-31 b(v)g(ok)g(es)401 b(it,)408 b(passing)400
b Fp("Voo")g Ft(as)f(a)g(parameter.)584 b(The)399 b(function)i(prin)-31
b(ts)399 b Fp(VooVoo)h Ft(on)g(a)0 20641 y(lo)31 b(cal)371
b(console.)1660 21970 y(In)284 b(principle,)303 b(in)285
b(our)f(statically-t)-31 b(yp)31 b(ed)288 b(language)f(the)d(execution)
i(of)f(functions)h(whic)-31 b(h)285 b(ha)-31 b(v)g(e)286
b(b)31 b(een)284 b(exp)31 b(orted)284 b(to)h(some)0 23298
y(other)450 b(agen)-31 b(t,)473 b(lik)-31 b(ely)452 b(to)f(b)31
b(e)450 b(executed)g(on)g(a)h(remote)g(mac)-31 b(hine,)472
b(should)451 b(not)g(cause)f(an)-31 b(y)450 b(run)-31
b(time)452 b(errors.)734 b(Curren)-31 b(tly)-92 b(,)0
24626 y(the)442 b(function)i(co)31 b(de)442 b(is)g(sen)-31
b(t)443 b(together)g(with)h Fq(al)57 b(l)555 b Ft(other)443
b(functions)g(and)g(global)h(v)-61 b(alues)442 b(whic)-31
b(h)443 b(will)h(b)31 b(e)442 b(needed)g(b)-31 b(y)443
b(the)0 25955 y(exp)31 b(orted)369 b(function.)494 b(Therefore)369
b(the)h(run)-31 b(time)370 b(errors)d(\\v)-61 b(ariable)371
b(not)e(b)31 b(ound")370 b(should)f(not)h(happ)31 b(en.)492
b(Note,)371 b(that)f(if)g(the)0 27283 y(exp)31 b(orted)354
b(function)h(had)f(used)f(standard)h(Pict)h(c)-31 b(hannels)354
b(for)f(comm)-31 b(unication)358 b(with)d(an)-31 b(y)354
b(external)h(pro)31 b(cesses)352 b(then)i(the)0 28611
y(function)371 b(b)31 b(eha)-31 b(viour)370 b(w)-31 b(ould)370
b(dep)31 b(end)369 b(on)g(the)h(new)f(lo)31 b(cal)371
b(con)-31 b(text.)1660 29940 y(Higher-order)463 b(functions)g(add)g
(more)g(expressiv)-31 b(eness)461 b(to)i(the)g(language)i(but)d(they)h
(complicate)i(the)e(language)h(se-)0 31268 y(man)-31
b(tics)339 b(and)g(ma)-31 b(y)339 b(prev)-31 b(en)g(t)338
b(from)g(some)h(highly)g(optimised)g(implemen)-31 b(tations)342
b(in)c(the)g(future.)483 b(Therefore,)344 b(please)339
b(k)-31 b(eep)0 32597 y(in)369 b(mind)h(that)h(future)e(v)-31
b(ersions)369 b(ma)-31 b(y)371 b(not)f(supp)31 b(ort)368
b(higher-order)h(functions.)0 36245 y Fy(3.6)1793 b(Distributed)601
b(Comp)50 b(osite)598 b(Ev)-50 b(en)g(ts)0 38669 y Ft(Nomadic)338
b(Pict)f(has)e(a)h(library)h(\(written)g(in)f(Nomadic)i(Pict\))g(whic)
-31 b(h)336 b(implemen)-31 b(ts)338 b(distributed)f(ev)-31
b(en)g(ts)336 b(and)g(a)g(comp)31 b(osite)0 39997 y(ev)-31
b(en)g(t)370 b(language)h(for)f(manipulating)j(comp)31
b(osite)370 b(ev)-31 b(en)g(t)370 b(expressions)f(\(suc)-31
b(h)369 b(as)g(a)h(sequence)f(of)g(ev)-31 b(en)g(t)370
b(t)-31 b(yp)31 b(es\).)1660 41326 y(A)425 b Fq(distribute)-57
b(d)446 b(event)530 b Ft(in)424 b(Nomadic)i(Pict)g(is)e(an)g(async)-31
b(hronous)425 b(time-stamp)31 b(ed)426 b(message.)658
b(The)424 b(timestamp)j(is)d(the)0 42654 y(ev)-31 b(en)g(t)491
b(creation)g(time)g(\(e.g.)857 b(a)490 b(lo)31 b(cal)492
b(clo)31 b(c)-31 b(k)491 b(v)-61 b(alue)490 b(assigned)h(at)f(the)h(ev)
-31 b(en)g(t)491 b(source\).)855 b(Ev)-31 b(en)g(ts)491
b(can)f(b)31 b(e)489 b(generated)i(at)0 43982 y(arbitrary)499
b(man)-31 b(y)500 b(distributed)f(ev)-31 b(en)g(t)499
b(sources)f(and)g(m)-31 b(ulticast)501 b(to)e(agen)-31
b(ts)500 b(\(clien)-31 b(ts\))500 b(that)g(subscrib)31
b(ed)497 b(for)h(the)h(ev)-31 b(en)g(t)0 45311 y(t)g(yp)31
b(e.)510 b(Ev)-31 b(en)g(ts)376 b(are)f(deliv)-31 b(ered)375
b(to)h(eac)-31 b(h)375 b(clien)-31 b(t)377 b(according)f(to)f(the)h
(timestamp)h(order.)509 b(Ev)-31 b(en)g(ts)376 b(are)e(distributed)i
(through)0 46639 y(a)398 b(third)g(part)-31 b(y)399 b(called)g(an)f
Fq(event)423 b(me)-57 b(diator)p Ft(,)405 b(whic)-31
b(h)399 b(can)f(b)31 b(e)397 b(spa)-31 b(wned)399 b(at)f(an)-31
b(y)399 b(lo)31 b(cation)400 b(whatso)31 b(ev)-31 b(er,)406
b(e.g.)580 b(at)398 b(a)g(site)g(of)0 47968 y(the)369
b(ev)-31 b(en)g(t)371 b(source,)e(using)g(a)h(function)g
Fp(engine)p Ft(.)1660 49185 y(Ev)-31 b(en)g(ts)270 b(are)e(sen)-31
b(t)268 b(on)h Fq(event)304 b(channels)p Ft(.)459 b(An)268
b(ev)-31 b(en)g(t)269 b(c)-31 b(hannel)270 b(is)e(simply)h(a)g
(standard)g(c)-31 b(hannel)269 b(created)f(b)-31 b(y)269
b Fp(new)p Ft(,)289 b(carrying)0 50403 y(v)-61 b(alues)369
b(of)h(abstract)g(t)-31 b(yp)31 b(e)370 b Fp(Event)582
b(X)p Ft(,)369 b(e.g.)8369 52447 y Fi(new)523 b(badge)g(:)g(^\(Event)g
(ActiveBadge\))0 54602 y Ft(The)465 b Fp(Event)g Ft(t)-31
b(yp)31 b(e)465 b(includes)f(an)h(ev)-31 b(en)g(t)466
b(timestamp,)491 b(a)464 b(sequence)g(n)-31 b(um)g(b)31
b(er,)489 b(and)465 b(a)f(v)-61 b(alue)465 b(of)g(the)g(ev)-31
b(en)g(t)466 b(t)-31 b(yp)31 b(e.)778 b(Ev)-31 b(en)g(t)0
55931 y(c)g(hannels)478 b(m)-31 b(ust)479 b(b)31 b(e)477
b(either)h(created)g(in)g(the)g(lexical)h(scop)31 b(e)478
b(of)g(the)g(ev)-31 b(en)g(t)479 b(sources)d(and)i(clien)-31
b(ts,)507 b(or)477 b(extruded)h(to)h(the)0 57259 y(sources)368
b(and/or)i(clien)-31 b(ts)370 b(along)h(other)f(c)-31
b(hannels.)1660 58477 y(Before)352 b(ev)-31 b(en)g(t)352
b(sources)e(can)i(send)f(an)-31 b(y)352 b(v)-61 b(alues)351
b(to)h(the)g(ev)-31 b(en)g(t)352 b(c)-31 b(hannel)352
b(\(using)g Fp(submit)p Ft(\))h(the)e(c)-31 b(hannel)352
b(has)g(to)g(b)31 b(e)350 b(\014rst)0 59694 y(declared)309
b(\(using)h Fp(declare)p Ft(\))g(at)f(some)h(mediator)g(agen)-31
b(t)310 b(whic)-31 b(h)310 b(is)f(selected)g(for)g(dealing)h(with)g
(the)f(ev)-31 b(en)g(t)310 b(t)-31 b(yp)31 b(e)309 b(\(there)h(can)0
60912 y(b)31 b(e)351 b(man)-31 b(y)353 b(mediators)g(in)f(a)g
(distributed)h(system\).)488 b(Before)352 b(receiving)g(ev)-31
b(en)g(ts)353 b(clien)-31 b(ts)353 b(m)-31 b(ust)352
b(register)g(for)g(the)g(ev)-31 b(en)g(t)352 b(t)-31
b(yp)31 b(e)0 62130 y(at)413 b(the)f(mediator)h(agen)-31
b(t)414 b(\(using)e Fp(register)p Ft(\),)425 b(sp)31
b(ecifying)413 b(the)f(name)g(of)h(the)f(ev)-31 b(en)g(t)413
b(c)-31 b(hannel.)621 b(Then)412 b(they)g(can)h(receiv)-31
b(e)0 63347 y(ev)g(en)g(ts)370 b(b)-31 b(y)369 b(simply)i(listening)g
(to)e(the)h(ev)-31 b(en)g(t)370 b(c)-31 b(hannel,)371
b(e.g.)8369 65392 y Fi(badge)523 b(?*)g(e)g(=)g(...)0
67547 y Ft(The)369 b(input)h(is)f(blo)31 b(c)-31 b(king,)372
b(w)-31 b(aiting)372 b(for)d(ev)-31 b(en)g(ts)370 b(to)g(come.)1660
68765 y(The)535 b(comp)31 b(osite)537 b(ev)-31 b(en)g(t)535
b(language)i(can)e(b)31 b(e)534 b(used)g(to)i(create)f
Fq(c)-57 b(omp)g(osite)549 b(event)g(channels)625 b Ft(from)536
b(standard)f(ev)-31 b(en)g(t)0 69982 y(c)g(hannels)547
b(and)f(other)g(comp)31 b(osite)548 b(ev)-31 b(en)g(t)547
b(c)-31 b(hannels.)1024 b(Once)546 b(created,)591 b(they)547
b(can)f(b)31 b(e)546 b(used)f(b)-31 b(y)547 b(the)f(ev)-31
b(en)g(t)547 b(clien)-31 b(t)548 b(for)0 71200 y(receiving)514
b(noti\014cations)i(ab)31 b(out)514 b(the)f(comp)31 b(osite)514
b(ev)-31 b(en)g(ts)514 b(of)f(some)h(complex)g(ev)-31
b(en)g(t)514 b(t)-31 b(yp)31 b(e)513 b(\(there)h(is)f(no)g(need)f(for)i
(an)p eop end
%%Page: 20 21
TeXDict begin 20 20 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(20)0 1107 y(explicit)479 b(registration)h(at)e
(mediators)h(in)e(this)h(case)f(since)h(the)f(library)h(do)31
b(es)477 b(it)i(automatically)j(for)477 b(the)h(clien)-31
b(t)479 b(whic)-31 b(h)0 2325 y(created)491 b(the)h(c)-31
b(hannel\).)859 b(The)492 b(comp)31 b(osite)492 b(ev)-31
b(en)g(t)492 b(language)h(\(deriv)-31 b(ed)492 b(from)g(the)f(comp)31
b(osite)493 b(ev)-31 b(en)g(t)492 b(language)h(of)f(the)0
3542 y(Cam)-31 b(bridge)371 b(Ev)-31 b(en)g(t)371 b(Arc)-31
b(hitecture[BBHM95)r(,)370 b(Ha)-31 b(y96)r(]\))370 b(implemen)-31
b(ts)371 b(follo)-31 b(wing)373 b(primitiv)-31 b(es:)8369
5645 y Fi(inclusiveor)8369 6863 y(without)8369 8081 y(followbywithout)
8369 9298 y(followby)0 11512 y Ft(and)325 b(timed)g(v)-31
b(ersions)325 b(of)g(the)f(ab)31 b(o)-31 b(v)g(e)326
b(\(i.e.)479 b(ev)-31 b(en)g(t)325 b(c)-31 b(hannels)325
b(will)h(b)31 b(e)324 b(activ)-31 b(e)326 b(only)f(for)g(a)g(prescrib)
31 b(ed)323 b(time\).)479 b(The)325 b(functions)0 12841
y Fp(followbywithout)424 b Ft(and)f Fp(followby)h Ft(are)e(a)-31
b(v)-61 b(ailable)425 b(eac)-31 b(h)423 b(in)g(four)f(di\013eren)-31
b(t)423 b(v)-61 b(arian)-31 b(ts)423 b(to)g(accommo)31
b(date)426 b(di\013eren)-31 b(t)422 b(se-)0 14169 y(man)-31
b(tics.)485 b(The)343 b(underscore)e Fp(\()p 12933 14169
333 45 v 399 w Ft(\))h(b)31 b(efore)342 b(and/or)h(after)g(the)f(core)g
(name)h(of)g(the)f(function)i(denotes)f(a)f(di\013eren)-31
b(t)343 b(seman)-31 b(tics)0 15497 y(of)370 b(the)f(primitiv)-31
b(e,)372 b(e.g.)493 b(if)370 b(w)-31 b(e)370 b(ha)-31
b(v)g(e)370 b(a)g(sequence)e(of)i(ev)-31 b(en)g(ts:)493
b Fo(A)p Ft(1)370 b Fo(A)p Ft(2)g Fo(B)56 b Ft(1)368
b Fo(B)56 b Ft(2)369 b(of)h(ev)-31 b(en)g(t)370 b(t)-31
b(yp)31 b(es)369 b Fp(A)g Ft(and)h Fp(B)p Ft(,)f(then)7890
17860 y Fp(A)581 b(followby)h(B)8775 b Ft(signals)370
b(an)f(ev)-31 b(en)g(t)371 b(\()p Fo(A)p Ft(2)p Fo(;)184
b(B)56 b Ft(1\))371 b(only)7890 19189 y Fp(A)p 9122 19189
349 45 v 999 w(followby)583 b(B)8356 b Ft(signals)370
b(\()p Fo(A)p Ft(1)p Fo(;)184 b(B)56 b Ft(1\))371 b(and)f(\()p
Fo(A)p Ft(2)p Fo(;)184 b(B)56 b Ft(1\))7890 20517 y Fp(A)581
b(followby)p 13770 20517 V 1001 w(B)8356 b Ft(signals)370
b(\()p Fo(A)p Ft(2)p Fo(;)184 b(B)56 b Ft(1\))371 b(and)f(\()p
Fo(A)p Ft(2)p Fo(;)184 b(B)56 b Ft(2\))7890 21845 y Fp(A)p
9122 21845 V 999 w(followby)p 14188 21845 V 1001 w(B)7938
b Ft(signals)370 b(\()p Fo(A)p Ft(1)p Fo(;)184 b(B)56
b Ft(1\))371 b(and)f(\()p Fo(A)p Ft(2)p Fo(;)184 b(B)56
b Ft(1\))371 b(and)e(\()p Fo(A)p Ft(2)p Fo(;)184 b(B)56
b Ft(1\))372 b(and)d(\()p Fo(A)p Ft(2)p Fo(;)184 b(B)56
b Ft(2\))0 24292 y(F)-92 b(or)368 b(more)i(details,)h(see)d(the)i
(library)g(description)g(in)f([W)-92 b(o)61 b(j00b)r(])370
b(and)f(an)h(example)g(program)g(in)g(the)f(distribution.)1660
25620 y(The)464 b(mediator)h(can)e(\(optionally\))468
b(dela)-31 b(y)464 b(sending)g(of)g(ev)-31 b(en)g(t)464
b(noti\014cations)i(to)e(clien)-31 b(ts)464 b(whic)-31
b(h)464 b(subscrib)31 b(ed)462 b(for)i(the)0 26948 y(ev)-31
b(en)g(t.)480 b(The)328 b(dela)-31 b(y)329 b(time)h(\(giv)-31
b(en)330 b(as)d(a)i(parameter)g(when)f(spa)-31 b(wning)330
b(the)e(mediator\))i(can)e(b)31 b(e)328 b(used)f(for)i(making)h(sure)d
(that)0 28277 y(all)420 b(ev)-31 b(en)g(ts)419 b(of)g(some)g(complex)h
(comp)31 b(osite)420 b(ev)-31 b(en)g(t)420 b(t)-31 b(yp)31
b(e,)432 b(whic)-31 b(h)419 b(ha)-31 b(v)g(e)420 b(b)31
b(een)418 b(created)h(at)g(di\013eren)-31 b(t)419 b(distributed)h
(sources)0 29605 y(at)413 b(roughly)h(the)f(same)g(time,)425
b(will)414 b(arriv)-31 b(e)413 b(to)g(the)g(mediator)h
Fq(b)-57 b(efor)g(e)497 b Ft(the)413 b(comp)31 b(osite)414
b(ev)-31 b(en)g(t)413 b(is)g(created,)424 b(so)412 b(that)i(it)g(can)0
30933 y(b)31 b(e)342 b(created)h(ha)-31 b(ving)344 b(the)f(b)31
b(est)343 b(kno)-31 b(wledge)344 b(p)31 b(ossible.)484
b(Of)343 b(course,)348 b(this)343 b(w)-31 b(orks)343
b(w)-31 b(ell)344 b(only)g(if)f(the)g(an)-31 b(ticipated)345
b(dela)-31 b(y)344 b(is)f(set)0 32262 y(up)369 b(correctly)-92
b(,)370 b(whic)-31 b(h)370 b(ma)-31 b(y)370 b(not)g(alw)-31
b(a)g(ys)372 b(b)31 b(e)368 b(p)31 b(ossible.)1660 33590
y(The)318 b(ev)-31 b(en)g(t)318 b(t)-31 b(yp)31 b(es)317
b(are)g(all)h(basic)g(and)f(complex)i(v)-61 b(alues)317
b(whic)-31 b(h)318 b(can)f(b)31 b(e)317 b(built)h(and)g(sen)-31
b(t)317 b(along)i(c)-31 b(hannels)317 b(\(this)h(v)-31
b(ersion)0 34918 y(of)370 b(Nomadic)h(Pict)f(allo)-31
b(ws)371 b(higher-order)e(functions,)i(so)e(an)h(ev)-31
b(en)g(t)370 b(t)-31 b(yp)31 b(e)369 b(can)h(also)g(b)31
b(e)369 b(a)g(program\).)p eop end
%%Page: 21 22
TeXDict begin 21 21 bop 0 9409 a Fj(Chapter)861 b(4)0
14944 y FA(Example)1033 b(Program)0 20700 y Ft(In)342
b(this)h(section)h(w)-31 b(e)343 b(describ)31 b(e)342
b(a)h(small)h(application)i(in)c(order)h(to)g(illustrate)i(Nomadic)f
(Pict)g(features,)k(suc)-31 b(h)343 b(as)f(mobilit)-31
b(y)-92 b(,)0 22029 y(comm)-31 b(unication)506 b(primitiv)-31
b(es,)537 b(the)503 b(use)e(of)i(c)-31 b(hannel)503 b(names)f(outside)h
(their)f(declaration)i(scop)31 b(e,)536 b(and)502 b(expressing)g(the)0
23357 y(enco)31 b(ding)416 b(of)g(the)g(high-)g(in)-31
b(to)417 b(the)e(lo)-31 b(w-lev)g(el)418 b(language.)634
b(The)415 b(program)h(uses)f(libraries:)585 b Fp(Map)416
b Ft(for)f(expressing)g(maps)h(or)0 24685 y(dictionaries,)336
b(and)324 b Fp(Graphics)i Ft(for)e(a)h(simple)g(graphics)g(\(based)g
(on)g(X11\).)479 b(W)-92 b(e)323 b(included)j(a)e(complete)i(source)e
(co)31 b(de)325 b(of)g(the)0 26014 y(application)404
b(and)c(infrastructure)h(enco)31 b(ding.)588 b(The)400
b(source)g(\014les)h(can)f(b)31 b(e)400 b(found)h(in)g(the)g
Fp(examples)g Ft(directory)h(\(see)e(also)0 27342 y(other)369
b(examples)i(and)e(demos\).)1660 28670 y(W)-92 b(e)333
b(consider)h(the)g(supp)31 b(ort)334 b(of)g(collab)31
b(orations)337 b(within)e(\(sa)-31 b(y\))335 b(a)g(large)f(computer)h
(science)e(departmen)-31 b(t,)343 b(spread)333 b(o)-31
b(v)g(er)0 29999 y(sev)g(eral)339 b(buildings.)484 b(Most)339
b(individuals)i(will)g(b)31 b(e)338 b(in)-31 b(v)g(olv)g(ed)341
b(in)e(a)g(few)h(collab)31 b(orations,)348 b(eac)-31
b(h)340 b(of)f(2{10)i(p)31 b(eople.)483 b(Individuals)0
31327 y(mo)-31 b(v)g(e)271 b(frequen)-31 b(tly)271 b(b)31
b(et)-31 b(w)g(een)271 b(o\016ces,)291 b(labs)270 b(and)g(public)g
(spaces;)303 b(impromptu)272 b(w)-31 b(orking)271 b(meetings)h(ma)-31
b(y)271 b(dev)-31 b(elop)271 b(an)-31 b(ywhere.)0 32655
y(Individuals)304 b(w)-31 b(ould)304 b(therefore)e(lik)-31
b(e)304 b(to)f(b)31 b(e)302 b(able)h(to)h(summon)f(their)g(w)-31
b(orking)304 b(state)f(\(whic)-31 b(h)304 b(ma)-31 b(y)304
b(b)31 b(e)302 b(complex,)317 b(consisting)0 33984 y(of)484
b(editors,)513 b(\014le)484 b(bro)-31 b(wsers,)511 b(tests-in-progress)
484 b(etc.\))836 b(to)484 b(an)-31 b(y)484 b(mac)-31
b(hine.)837 b(These)483 b(summonings)i(should)f(preserv)-31
b(e)482 b(an)-31 b(y)0 35312 y(comm)g(unications)339
b(that)f(they)e(are)g(engaged)h(in,)343 b(for)336 b(example)i
(audio/video)h(links)d(with)h(other)g(mem)-31 b(b)31
b(ers)336 b(of)g(the)g(pro)61 b(ject.)1660 36640 y(T)-92
b(o)420 b(ac)-31 b(hiev)g(e)420 b(this,)432 b(the)419
b(user's)e(w)-31 b(orking)421 b(state)e(can)g(b)31 b(e)418
b(encapsulated)i(in)f(a)g(mobile)i(agen)-31 b(t,)433
b(an)419 b(electronic)g Fq(p)-57 b(ersonal)0 37969 y(assistant)409
b(\(P)-85 b(A\))p Ft(,)384 b(that)h(can)g(migrate)h(on)f(demand.)539
b(Belo)-31 b(w,)390 b(w)-31 b(e)385 b(describ)31 b(e)383
b(a)i(protot)-31 b(yp)31 b(e)386 b(of)f(the)g(application,)391
b(where)385 b(the)0 39297 y(P)-92 b(A)398 b(agen)-31
b(t)399 b(is)e(used)g(only)i(for)f(deliv)-31 b(ering)399
b(messages)f(to)g(mo)-31 b(ving)400 b(p)31 b(eople.)578
b(In)397 b(Section)i(4.2)g(w)-31 b(e)398 b(giv)-31 b(e)399
b(the)f(enco)31 b(ding)398 b(of)h(an)0 40625 y(example)371
b(comm)-31 b(unication)373 b(infrastructure.)0 44264
y Fy(4.1)1793 b(High-Lev)-50 b(el)599 b(Arc)-50 b(hitecture)0
46578 y Ft(In)466 b(the)i(b)31 b(eginning)468 b(of)f(the)h(program)f(w)
-31 b(e)468 b(need)e(to)i(imp)31 b(ort)468 b(libraries)f(whic)-31
b(h)468 b(are)f(not)h(imp)31 b(orted)468 b(b)-31 b(y)467
b(default,)493 b(using)468 b(a)0 47796 y(k)-31 b(eyw)g(ord)370
b Fp(import)p Ft(.)7845 49798 y Fi(import)524 b("Nstd/Map")7845
51015 y(import)g("Graphics/Graphics")0 53017 y Ft(After)343
b(imp)31 b(orts)344 b(w)-31 b(e)343 b(can)h(de\014ne)e(an)-31
b(y)344 b(global)h(names,)k(v)-61 b(alues,)349 b(and)344
b(functions)g(de\014ned)e(using)i Fp(def)f Ft(whic)-31
b(h)344 b(will)h(b)31 b(e)342 b(used)h(in)0 54235 y(the)391
b(main)g(program)g Fq(and)505 b Ft(infrastructure)390
b(enco)31 b(ding)392 b(\(here)e(w)-31 b(e)391 b(do)f(not)h(ha)-31
b(v)g(e)392 b(an)-31 b(y)391 b(suc)-31 b(h)390 b(data\).)558
b(Then,)396 b(w)-31 b(e)391 b(declare)g(the)0 55453 y(P)-92
b(A)369 b(program)7845 57455 y Fi(program)524 b(hosts)f(:)g([Site)g
(Site)g(Site])h(=)7845 58672 y(\()8892 59890 y(...)7845
61108 y(\))0 63110 y Ft(The)537 b(program)h(accepts)g(a)f(list)h(of)f
(site)h(names.)997 b(Belo)-31 b(w)538 b(w)-31 b(e)538
b(describ)31 b(e)536 b(the)h(b)31 b(o)g(dy)537 b(of)h(the)f(program)h
(in)g(detail.)998 b(W)-92 b(e)0 64327 y(implemen)-31
b(t)465 b(the)d(P)-92 b(A)463 b(application)i(with)f(three)e(classes)g
(of)h(agen)-31 b(ts:)680 b(the)462 b(P)-92 b(As)462 b(themselv)-31
b(es,)487 b(whic)-31 b(h)463 b(migrate)i(from)d(site)0
65545 y(to)416 b(site;)440 b Fq(summoner)535 b Ft(agen)-31
b(ts,)429 b(whic)-31 b(h)416 b(are)g(static)h(\(one)f(p)31
b(er)415 b(site\))h(and)g(are)g(used)f(to)h(call)h(the)f(P)-92
b(As;)439 b(and)416 b(a)g(single)g Fq(name)0 66763 y(server)442
b Ft(agen)-31 b(t,)334 b(also)324 b(static,)335 b(whic)-31
b(h)324 b(main)-31 b(tains)325 b(a)f(lo)31 b(okup)324
b(table)h(from)f(the)f(textual)i(k)-31 b(eys)323 b(of)h(P)-92
b(As)323 b(to)h(their)g(in)-31 b(ternal)324 b(agen)-31
b(t)0 67980 y(names.)493 b(They)370 b(in)-31 b(teract)370
b(using)g(lo)31 b(cation-indep)g(enden)-31 b(t)372 b(comm)-31
b(unication)373 b(on)d(c)-31 b(hannel)370 b(names)7845
69982 y Fi(new)524 b(regist)1569 b(:)523 b(^[String)g(Agent])7845
71200 y(new)h(summon)1569 b(:)523 b(^[String)g(Site)g(Agent])25447
74521 y Ft(21)p eop end
%%Page: 22 23
TeXDict begin 22 22 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(22)7845 1107 y Fi(new)524 b(name)2615
b(:)523 b(^[Bool)g(String)g(Agent])7845 2325 y(new)h(mid)3138
b(:)523 b(^[String)g(Agent])7845 3542 y(new)h(move)2615
b(:)523 b(^[Site)g(Agent])7845 4760 y(new)h(notFound)f(:)g(^String)7845
5978 y(new)h(done)2615 b(:)523 b(^[])7845 7195 y(new)h(main)2615
b(:)523 b(^[])0 9298 y Ft(The)549 b(program)g(in)-31
b(v)g(olv)g(es)551 b(\014nite)e(maps)g(from)h(Nomadic)g(Pict)g
(standard)f(library)-92 b(.)1031 b(W)-92 b(e)548 b(mak)-31
b(e)550 b(use)e(of)h(the)g(follo)-31 b(wing)0 10516 y(constructs:)7845
12619 y Fi(c!\(map.make)524 b(eq\))0 14723 y Ft(outputs)370
b(the)f(empt)-31 b(y)371 b(map)f(on)f(c)-31 b(hannel)370
b Fp(c)f Ft(\(where)h Fp(eq)f Ft(is)g(a)h(comparing)h(function)f(o)-31
b(v)g(er)370 b(the)f(k)-31 b(eys\),)7845 16826 y Fi(map.add)524
b(m)f(key)g(v)0 18929 y Ft(returns)373 b(a)i(map)g(con)-31
b(taining)377 b(the)d(same)h(binding)g(as)f Fp(m)p Ft(,)i(plus)e(a)h
(binding)g(of)g Fp(key)f Ft(to)h Fp(v)p Ft(;)i(if)e Fp(key)g
Ft(w)-31 b(as)375 b(already)g(b)31 b(ound)374 b(in)g
Fp(m)p Ft(,)0 20147 y(its)c(previous)f(binding)h(disapp)31
b(ears,)7845 22250 y Fi(switch)524 b(\(map.lookup)f(m)g(key\))g(of)7845
23468 y(\()8892 24685 y(Found>)g(w:T)g(->)g(P)8892 25903
y(NotFound>)g(_:[])g(->)g(Q)7845 27121 y(\))0 29224 y
Ft(lo)31 b(oks)251 b(up)f Fp(key)g Ft(in)g(map)h Fp(m)p
Ft(.)453 b(The)250 b Fp(Map)h Ft(library)f(con)-31 b(tains)252
b(four)e(additional)j(functions:)435 b(for)250 b(remo)-31
b(v)-61 b(al,)275 b(testing,)h(and)250 b(iterations.)0
30441 y(The)367 b(name)h(serv)-31 b(er)366 b(b)31 b(elo)-31
b(w)368 b(main)-31 b(tains)370 b(a)d(map)h(from)f(strings)g(to)h(agen)
-31 b(t)369 b(names;)f(it)g(receiv)-31 b(es)367 b(new)g(mappings)h(on)g
Fp(regist)p Ft(.)0 31659 y(The)406 b(map)h(is)f(stored)g(as)f(an)i
(output)g(on)f(the)g(in)-31 b(ternal)408 b(c)-31 b(hannel)407
b Fp(names)p Ft(.)603 b(Summon)407 b(requests)e(are)h(receiv)-31
b(ed)406 b(on)h Fp(summon)p Ft(,)0 32877 y(con)-31 b(taining)336
b(a)d(textual)i(k)-31 b(ey)334 b(and)f(the)g(name/site)i(of)f(the)f
(summoner.)481 b(If)333 b(the)g(k)-31 b(ey)333 b(has)g(b)31
b(een)333 b(registered)g(the)g(name)h(serv)-31 b(er)0
34094 y(sends)332 b(a)h(migration)j(command)f(to)f(the)f(corresp)31
b(onding)333 b(P)-92 b(A)333 b(agen)-31 b(t,)342 b(otherwise)334
b(it)g(sends)e(the)h Fp(notFound)h Ft(message)g(to)g(the)0
35312 y(summoner.)530 b(Inquiries)381 b(ab)31 b(out)383
b(agen)-31 b(t)383 b(names)f(are)f(receiv)-31 b(ed)382
b(on)g Fp(name)p Ft(,)j(con)-31 b(taining)384 b(the)e(k)-31
b(ey)382 b(and)g(caller)g(name.)531 b(Replies)0 36530
y(are)369 b(sen)-31 b(t)369 b(bac)-31 b(k)370 b(on)g
Fp(name)p Ft(,)g(con)-31 b(taining)372 b Fp(true)d Ft(and)h(k)-31
b(ey/name)371 b(if)f(the)f(name)h(is)f(found,)h(and)g
Fp(false)f Ft(otherwise.)7845 38633 y Fi(agent)524 b(NameServer)f(=)
8369 39851 y(\(new)g(names)g(:)g(^\(Map)g(String)g(Agent\))8892
41068 y(def)g(eq)g(\(a:String)g(b:String\))g(:)g(Bool)h(=)f(\(==$)g(a)g
(b\))8892 42286 y(\()g(names!\(map.make)g(eq\))8892 43504
y(|)g(regist?*[key)g(PA])g(=)g(names?m)g(=)h(names!\(map.add)f(m)g(key)
g(PA\))8892 44721 y(|)g(summon?*[key)g(s)g(Su])g(=)g(names?m)h(=)10984
45939 y(switch)f(\(map.lookup)g(m)g(key\))h(of)f(\()12030
47156 y(Found>)g(PA:Agent)g(->)g(\(move@PA![s)h(Su])f(|)g(names!m\))
12030 48374 y(NotFound>)g(_:[])g(->)g(\(notFound@Su!key)h(|)f
(names!m\)\))8892 49592 y(|)g(name?*[_)g(key)g(a])g(=)g(names?m=)10984
50809 y(switch)g(\(map.lookup)g(m)g(key\))h(of)f(\()12030
52027 y(Found>)g(PA:Agent)g(->)g(\(name@a![true)h(key)f(PA])g(|)g
(names!m\))12030 53245 y(NotFound>)g(_:[])g(->)1046 b(\(name@a![false)
524 b(key)f(a])g(|)g(names!m\)\))8892 54462 y(\)\))0
56566 y Ft(The)380 b(summoner)h(at)g(site)f Fp(s)g Ft(is)g(as)g(b)31
b(elo)-31 b(w.)527 b(It)380 b(displa)-31 b(ys)381 b(a)g(little)h(windo)
-31 b(w)382 b(on)e Fp(workstation)i Ft(and)e(w)-31 b(aits)382
b(un)-31 b(til)382 b(one)e(of)h(the)0 57783 y(ev)-31
b(en)g(ts)334 b(sp)31 b(eci\014ed)333 b(in)h(the)g(giv)-31
b(en)334 b Fp(Xevent)h Ft(list)f(o)31 b(ccurs.)480 b(Then,)341
b(it)335 b(returns)d(the)i(status)g Fp(stat)g Ft(of)g(the)f(mouse)h
(and)g(k)-31 b(eyb)31 b(oard)0 59001 y(at)295 b(that)g(time)g(and)f
(executes)g(the)g(function)h Fp(main)p Ft(.)468 b(If)294
b(a)g(mouse)g(button)h(has)f(b)31 b(een)293 b(pressed)f(it)j(gets)f
(strings)g(from)g(the)g(lo)31 b(cal)0 60219 y(console,)418
b(sending)407 b(them)g(as)g(requests)f(to)i(the)f(name)h(serv)-31
b(er.)605 b(In)406 b(parallel,)419 b(it)407 b(closes)g(the)g(windo)-31
b(w)409 b(and)e(after)h(receiving)0 61436 y(a)421 b(mesage)h(on)f
Fp(done)p Ft(,)435 b(the)421 b(function)i(is)e(rep)31
b(eated.)648 b(The)421 b(ev)-31 b(en)g(t)422 b(list)g
Fp(Xevents)g Ft(is)f(de\014ned)f(using)i(the)f Fp(List)g
Ft(library)h(\(see)0 62654 y([W)-92 b(o)61 b(j00b)r(])370
b(for)f(details\).)7845 64757 y Fi(val)524 b(Xevents)f(=)g(\(cons)g
(#Event)g([Poll>[]])15691 65975 y(\(list.make)g(#Event)h(1)f
([Button_down>[]]\)\))7845 68410 y(agent)h(Summoner)f(=)7845
69628 y(\()8892 70845 y(def)g(err)g(s:String)g(=)g(print!\(+$)g
("Error:")h(s\))p eop end
%%Page: 23 24
TeXDict begin 23 23 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(23)8892 1107 y Fi(def)523 b(open_window)g(\(\))g
(:)g(Status)g(=)8892 2325 y(\()9938 3542 y(\(open_graph)g(\(+$)g
(workstation)h(")f(100x50+0-0"\))g(err\);)9938 4760 y(\(moveto)g(30)g
(30\);)g(\(set_color)g(red\);)h(\(draw_string)f("DAEMON"\);)9938
5978 y(\(moveto)g(10)g(15\);)g(\(set_color)g(black\);)h(\(draw_string)f
("Click)g(mouse"\);)9938 7195 y(\(wait_next_event)g(Xevents\))8892
8413 y(\))8892 9631 y(def)g(main)g(stat:Status)g(=)9938
10848 y(if)g(stat.button)g(then)10984 12066 y(\(run)g(print!"A)g(mouse)
g(button)h(has)f(been)g(pressed")11507 13284 y(val)g(key)g(=)g
(\(sys.read)g("Summon)h(PA)f(:)g("\))11507 14501 y
(\(summon@NameServer![key)g(s)h(Summoner])11507 15719
y(|)f(\(\(close_graph\);)g(done?_)h(=)f(main!\(open_window\)\))11507
16936 y(|)g(notFound?key=)g(\(print!\(+$)h(key)f(")g(not)g(found!"\))g
(|)g(done![]\)\)\))9938 18154 y(else)g(main!\(wait_next_event)g
(Xevents\))8892 19372 y(main!\(open_window\))7845 20589
y(\))0 22693 y Ft(A)341 b(sample)h(P)-92 b(A)341 b(\(iden)-31
b(ti\014ed)343 b(b)-31 b(y)341 b(a)h(string)f Fp(a)p
Ft(\))h(is)f(b)31 b(elo)-31 b(w.)484 b(It)341 b(has)g(4)h(parallel)g
(comp)31 b(onen)-31 b(ts;)353 b(a)341 b(registration)i(message,)k(a)342
b(lo)31 b(op)0 23910 y Fp(main)405 b Ft(for)f(sending)h(messages)f(to)h
(another)g(P)-92 b(A,)405 b(a)g(replicated)g(input)g(that)h(receiv)-31
b(es)404 b(data)i(from)e(other)h(P)-92 b(As)404 b(and)h(prin)-31
b(ts)0 25128 y(it,)370 b(and)g(a)f(replicated)i(input)f(that)g(receiv)
-31 b(es)369 b(migration)j(commands)f(and)e(executes)g(them.)7845
27231 y Fi(agent)524 b(PA)f(=)9938 28449 y(\()g(regist@NameServer![a)g
(PA])9938 29667 y(|)g(main?*_)g(=)12030 30884 y
(\(name@NameServer![true)g(\(sys.read)h("Send)f(to?)g("\))g(PA])12030
32102 y(|)g(name?[ok)g(key)g(dest]=)13599 33319 y(if)g(ok)g(then)14645
34537 y(mid@dest![\(sys.read)h(\(+$)f("Type)g(to)g(")g(key\)\))g(PA])
13599 35755 y(else)g(\(print!\(+$)g(key)g(")h(not)f(found."\))g(|)g
(main![]\)\))9938 36972 y(|)g(mid?*[d)g(source])g(=)g(\(print!\(+$)h
("Incoming:)f(")g(d\))g(|)g(main@source![]\))9938 38190
y(|)g(move?*[s)g(Su])g(=)g(\(migrate)g(to)h(s)f(\(print!\(+$)g(a)g(")g
(has)g(moved)g(here."\))h(|)f(done@Su![]\)\))9938 39408
y(|)g(main![]\))0 41511 y Ft(The)332 b(program)h(launc)-31
b(hes)333 b(summoners)f(and)g(P)-92 b(A)333 b(agen)-31
b(ts)333 b(dynamically)-92 b(,)343 b(using)332 b(the)h(standard)f
(migration)j(primitiv)-31 b(e,)342 b(on)-31 b(to)0 42729
y(the)411 b(list)h(of)f(activ)-31 b(e)412 b(sites.)618
b(A)410 b(function)i Fp(spawnSummoner)h Ft(tak)-31 b(es)412
b(the)e(name)i(of)f(the)g(site)g(where)g(the)g(summoner)g(will)h(b)31
b(e)0 43946 y(spa)-31 b(wned)370 b(and)f(the)h(name)g(of)f(computer)h
(on)g(whic)-31 b(h)370 b(the)f(graphics)h(windo)-31 b(w)371
b(will)g(b)31 b(e)368 b(displa)-31 b(y)g(ed.)7845 46050
y Fi(def)524 b(spawnSummoner)f([s:Site)g(workstation:String])h(=)7845
47267 y(\()8892 48485 y(agent)f(Summoner)g(=)8892 49703
y(\()12030 50920 y(...)9938 52138 y(def)g(open_window)g(\(\))g(:)g
(Status)h(=)f(\(...\))9938 53355 y(def)g(main)g(stat:Status)g(=)12030
54573 y(...)9938 55791 y(migrate)g(to)g(s)9938 57008
y(run)g(print!"Summoner)g(installed.")9938 58226 y
(main!\(open_window\))8892 59444 y(\))8892 60661 y(in)g(\(\))7845
61879 y(\))0 63982 y Ft(A)369 b(function)i Fp(spawnPA)f
Ft(tak)-31 b(es)370 b(a)f(textual)i(name)f(of)g(the)g(P)-92
b(A)369 b(agen)-31 b(t)7845 66086 y Fi(def)524 b(spawn)f(a:String)g(=)
8892 67303 y(\(agent)g(PA)g(=)12030 68521 y(...)9415
69738 y(in)10461 70956 y(print!\(+$)g(a)g(")g(spawned."\)\))p
eop end
%%Page: 24 25
TeXDict begin 24 24 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(24)7845 2325 y Fi(\()524 b(spawnSummoner![s0)f
("glia:0.0"])7845 3542 y(|)h(spawnSummoner![s1)f("ouse:0.0"])7845
4760 y(|)h(spawnSummoner![s2)f("iris:0.0"])7845 5978
y(|)h(spawn!"Ala")7845 7195 y(|)g(spawn!"Kotek"\))0 9409
y Ft(F)-92 b(or)469 b(simplicit)-31 b(y)473 b(the)d(implemen)-31
b(tation)475 b(uses)469 b(lo)31 b(cation-indep)g(enden)-31
b(t)473 b(comm)-31 b(unication)474 b(throughout,)497
b(despite)471 b(the)f(fact)0 10738 y(that)370 b(the)g(name)g(serv)-31
b(er)368 b(and)h(summoners)h(are)f(static.)0 14398 y
Fy(4.2)1793 b(Lo)-50 b(w-Lev)g(el)599 b(T)-149 b(ranslation)0
16823 y Ft(A)367 b(usable)h(infrastructure)f(for)h(the)f(P)-92
b(A)368 b(application)i(can)e(only)g(b)31 b(e)367 b(designed)g(in)h
(the)g(con)-31 b(text)368 b(of)g(detailed)h(assumptions,)0
18151 y(b)31 b(oth)504 b(ab)31 b(out)505 b(the)g(system)f(prop)31
b(erties)504 b(\(e.g.)898 b(the)504 b(size)g(of)h(the)f(net)-31
b(w)g(ork)505 b(and)g(reliabilit)-31 b(y\))507 b(and)d(ab)31
b(out)505 b(the)g(exp)31 b(ected)0 19479 y(b)g(eha)-31
b(viour)422 b(of)g(the)g(high-lev)-31 b(el)423 b(agen)-31
b(ts.)650 b(The)422 b(P)-92 b(A)421 b(application)j(also)f(demands)e
(disconnected)h(op)31 b(eration)423 b(\(on)f(laptops\))0
20808 y(and)461 b(a)f(higher)h(lev)-31 b(el)461 b(of)g
(fault-tolerance.)769 b(W)-92 b(e)460 b(discuss)f(infrastructure)i
(design)g(addressing)f(these,)483 b(in)461 b([W)-92 b(o)61
b(j00a)s(],)484 b(but)0 22136 y(for)392 b(the)h(sak)-31
b(e)392 b(of)h(a)f(clear)h(example)g(infrastructure)f(w)-31
b(e)393 b(neglect)g(them)g(here.)561 b(Belo)-31 b(w)394
b(w)-31 b(e)392 b(describ)31 b(e)391 b(one)i(of)f(the)h(simplest)0
23464 y(algorithms)459 b(p)31 b(ossible,)480 b(with)458
b(a)f(cen)-31 b(tralized)458 b(serv)-31 b(er)456 b(daemon.)757
b(The)457 b(algorithm)i(assumes)e(a)g(large)g(essen)-31
b(tially-reliable)0 24793 y(LAN.)370 b(It)f(has)h(b)31
b(een)369 b(c)-31 b(hosen)369 b(to)h(illustrate)h(the)f(c)-31
b(haracteristic)371 b(features)f(of)g(Nomadic)h(Pict,)g(suc)-31
b(h)369 b(as)g(enco)31 b(ding)371 b(of)e(basic)0 26121
y(t)-31 b(yp)31 b(es)397 b(and)h(the)f(use)g(of)h(c)-31
b(hannel)398 b(names)g(outside)g(their)f(declaration)j(scop)31
b(e.)576 b(Algorithms)399 b(that)g(are)e(widely)i(applicable)0
27450 y(to)431 b(actual)i(mobile)f(agen)-31 b(t)432 b(systems)f(w)-31
b(ould)432 b(ha)-31 b(v)g(e)432 b(to)f(b)31 b(e)431 b(y)-31
b(et)431 b(more)g(delicate,)448 b(b)31 b(oth)432 b(for)e(e\016ciency)i
(and)f(for)g(robustness)0 28778 y(under)368 b(partial)j(failure.)0
31877 y Fh(4.2.1)1495 b(Algorithm)0 33920 y Ft(The)344
b(algorithm)j(in)-31 b(v)g(olv)g(es)346 b(a)e(cen)-31
b(tral)345 b(daemon)g(that)g(k)-31 b(eeps)344 b(trac)-31
b(k)345 b(of)f(the)g(curren)-31 b(t)344 b(sites)g(of)g(all)h(agen)-31
b(ts)345 b(and)g(forw)-31 b(ards)344 b(an)-31 b(y)0 35248
y(lo)31 b(cation-indep)g(enden)-31 b(t)300 b(messages)c(to)i(them.)469
b(The)297 b(daemon)h(is)e(itself)i(implemen)-31 b(ted)299
b(as)d(an)h(agen)-31 b(t)298 b(whic)-31 b(h)298 b(nev)-31
b(er)296 b(migrates;)0 36577 y(the)471 b(translation)h(of)f(a)g
(program)g(then)f(consists)h(roughly)g(of)g(the)f(daemon)i(agen)-31
b(t)472 b(in)e(parallel)i(with)g(a)e(comp)31 b(ositional)0
37905 y(translation)441 b(of)f(the)f(program.)703 b(F)-92
b(or)438 b(simplicit)-31 b(y)441 b(w)-31 b(e)440 b(assume)f(that)h
(programs)f(are)g(initiated)i(as)e(single)h(agen)-31
b(ts,)458 b(rather)0 39233 y(than)380 b(man)-31 b(y)380
b(agen)-31 b(ts)381 b(initiated)h(separately)e(on)f(di\013eren)-31
b(t)380 b(sites.)523 b(\(Programs)380 b(ma)-31 b(y)-92
b(,)383 b(of)d(course,)i(b)31 b(egin)380 b(b)-31 b(y)379
b(creating)i(other)0 40562 y(agen)-31 b(ts)392 b(that)h(immediately)i
(migrate\).)561 b(In)391 b(Chapter)h(5)g(w)-31 b(e)392
b(describ)31 b(e)390 b(ho)-31 b(w)393 b(to)f(deal)g(with)h(the)e(case)h
(when)f(programs)h(are)0 41890 y(split)370 b(in)g(man)-31
b(y)370 b(\014les.)1660 43218 y(The)350 b(precise)f(de\014nition)i(is)e
(giv)-31 b(en)350 b(in)g(4.1)g(and)g(Figures)f(4.2.)487
b(Figure)349 b(4.1)i(de\014nes)d(a)i(top-lev)-31 b(el.)488
b(It)349 b(tak)-31 b(es)351 b(name)f Fp(P)f Ft(of)h(a)0
44547 y(user-de\014ned)326 b(program)j(and)e(name)i Fp(hosts)f
Ft(of)g(a)g(parameter)g(whic)-31 b(h)328 b(is)g(used)f(to)h(pass)f
(activ)-31 b(e)329 b(sites)f(to)g(the)g(program.)480
b(The)0 45875 y(de\014nition)391 b(of)f Fp(toplevel)g
Ft(in)-31 b(v)g(olv)g(es)391 b(creation)g(of)e(the)h(daemon)g(agen)-31
b(t)391 b Fp(D)p Ft(,)e(and)h(an)f(auxiliary)j(comp)31
b(ositional)392 b(translation)0 47203 y Fr(f)p Fp(P)p
Fr(g)p Fp([a)583 b(currentloc)f(D)f(SD])p Ft(,)385 b(de\014ned)f
(phrase-b)-31 b(y-phrase,)388 b(of)c Fp(P)g Ft(considered)g(as)g(part)h
(of)f(the)h(b)31 b(o)g(dy)384 b(of)g(agen)-31 b(t)386
b Fp(a)p Ft(,)i(where)0 48532 y(the)410 b(daemon)h(agen)-31
b(t)411 b Fp(D)f Ft(is)g(assumed)f(to)i(b)31 b(e)409
b(at)i(site)f Fp(SD)p Ft(.)g(The)g(comp)31 b(ositional)413
b(translation)g(is)c(giv)-31 b(en)411 b(in)f(Figure)g(4.2.)616
b(F)-92 b(or)0 49860 y(eac)-31 b(h)395 b(term)f Fp(P)g
Ft(of)h(the)f(high-lev)-31 b(el)397 b(language,)403 b(the)394
b(result)h Fr(f)p Fp(P)p Fr(g)p Fp([a)582 b(currentloc)h(D)e(SD])394
b Ft(of)h(the)g(translation)h(is)e(a)h(term)f(of)0 51188
y(the)369 b(lo)-31 b(w-lev)g(el)373 b(language.)0 54287
y Fh(4.2.2)1495 b(The)499 b(top)f(lev)-42 b(el)0 56330
y Ft(Let)346 b(us)g(lo)31 b(ok)348 b(\014rst)e(at)h(the)f(daemon.)487
b(It)346 b(con)-31 b(tains)348 b(t)-31 b(w)g(o)348 b(replicated)g
(inputs,)j(on)c(the)f Fp(migrating)i Ft(and)f Fp(message)g
Ft(c)-31 b(hannels,)0 57659 y(for)425 b(receiving)i(messages)e(from)h
(the)g(enco)31 b(dings)425 b(of)h(agen)-31 b(ts.)663
b(The)425 b(daemon)i(is)e(m)-31 b(ulti-threaded)428 b(|)d(op)31
b(erations)426 b(dealing)0 58987 y(with)367 b(di\013eren)-31
b(t)366 b(agen)-31 b(ts)366 b(are)g(executed)g(in)g(parallel.)493
b(The)366 b(c)-31 b(hannel)366 b Fp(loc)g Ft(is)g(used)f(to)h(enforce)g
(m)-31 b(utual)367 b(exclusion)g(b)31 b(et)-31 b(w)g(een)0
60315 y(the)532 b(b)31 b(o)g(dies)531 b(of)i(the)f(replicated)h(inputs)
f(whic)-31 b(h)532 b(deal)h(with)g(the)f(same)g(agen)-31
b(t)533 b(name)f(\(e.g.)982 b(the)532 b(daemon)g(will)i(blo)31
b(c)-31 b(k)0 61644 y(forw)g(arding)325 b(a)f(message)h(to)f(agen)-31
b(t)325 b Fp(b)f Ft(if)g Fp(b)g Ft(is)f(in)h(the)g(middle)h(of)g
(migration\),)336 b(and)324 b(the)g(co)31 b(de)324 b(preserv)-31
b(es)322 b(the)i(in)-31 b(v)-61 b(arian)-31 b(t)326 b(that)0
62972 y(at)394 b(an)-31 b(y)395 b(time)f(there)g(is)f(at)i(most)f(one)g
(output)g(on)g Fp(loc)p Ft(.)566 b(The)394 b Fp(loc)g
Ft(c)-31 b(hannel)394 b(is)g(also)g(used)f(to)i(record)d(the)i(curren)
-31 b(t)393 b(site)h(of)0 64301 y(an)g(agen)-31 b(t.)566
b(The)394 b(b)31 b(o)g(dy)393 b(of)h(eac)-31 b(h)394
b(replicated)g(input)g(b)31 b(egins)394 b(with)h(an)e(input)h(on)g
Fp(loc)p Ft(,)400 b(thereb)-31 b(y)394 b(acquiring)g(b)31
b(oth)394 b(the)g(lo)31 b(c)-31 b(k)0 65629 y(and)369
b(the)h(site)f(name.)1660 66957 y(Putting)402 b(the)f(daemon)g(and)f
(the)g(comp)31 b(ositional)404 b(enco)31 b(ding)401 b(together,)409
b(the)400 b(top)h(lev)-31 b(el)401 b(translation,)411
b(de\014ned)399 b(in)h(Fig-)0 68286 y(ure)447 b(4.1,)470
b(creates)448 b(the)g(toplev)-31 b(el)450 b(agen)-31
b(t)450 b Fp(top)p Ft(,)468 b(spa)-31 b(wns)449 b(the)f(daemon)h(agen)
-31 b(t)450 b Fp(D)p Ft(,)e(w)-31 b(aits)450 b(for)e(ac)-31
b(kno)g(wledgemen)g(t)452 b(from)d(the)0 69614 y(daemon)397
b(and)f(then)h(initializes)i(the)d(lo)31 b(c)-31 b(k)397
b(c)-31 b(hannel)397 b Fp(currentloc)g Ft(for)f Fp(top)p
Ft(,)404 b(installs)397 b(the)g(replicated)g(input)g(on)f
Fp(deliver)0 70942 y Ft(for)360 b Fp(top)p Ft(,)i(and)f(starts)f(the)g
(enco)31 b(ding)360 b(of)h(the)f(b)31 b(o)g(dy)360 b
Fr(f)p Fp(P)p Fr(g)p Fp([a)582 b(currentloc)h(D)e(SD])p
Ft(.)361 b(The)f(daemon)h(registers)f(agen)-31 b(t)361
b Fp(top)f Ft(to)p eop end
%%Page: 25 26
TeXDict begin 25 25 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(25)p 0 44 52000 45 v 7845 2311 a
Fi(new)524 b(migrating)f(:)g(^[Agent)g(^Site])7845 3529
y(new)h(message)1569 b(:)523 b(^[#X)g([Agent)g(^Site])h(^X)f(X])7845
4746 y(new)h(deliver)1569 b(:)523 b(^[#X)g(^X)g(X)g(Site])7845
5964 y(new)h(ack)3661 b(:)523 b(^[])7845 7182 y(new)h(done)3138
b(:)523 b(^^Site)7845 10835 y Ff(f)p Fi(Agent)p Ff(g)h
Fi(=)f([Agent)g(^Site])7845 12052 y Ff(f)p Fi(Site)p
Ff(g)h Fi(=)f(Site)7845 15705 y Ff(f)g Fi(toplevel)h(P)f(hosts)g
Ff(g)p Fi([Agent)g(^Site)g(Agent)h(Site])f(=)7845 16923
y(\()7845 18140 y(val)h(s0)f(=)g(\(get_site)g(0\))7845
19358 y(val)h(s1)f(=)g(\(get_site)g(1\))7845 20576 y(val)h(s2)f(=)g
(\(get_site)g(2\))7845 23011 y(agent)h(top)f(=)8369 24229
y(\(new)g(currentloc)g(:)g(^Site)8892 26664 y(agent)g(D)g(=)9415
27882 y(\(print!"Server)g(installed.")9415 29099 y(|)g(ack![])g
(|)g(currentloc!s0)9415 30317 y(|)g(migrating?*[b:Agent)g(loc:^Site]=)
11507 31535 y(loc?s=)g(ack![])9415 32752 y(|)g(message?*[#X)g
([b:Agent)g(loc:^Site])h(c:^X)f(v:X]=)11507 33970 y(loc?s=)g
(deliver![c)g(v)h(s]\))8892 36405 y(in)9938 37623
y(val)f(SD)g(=)g(s0)9938 38841 y(ack?_=)10984 40058 y(\()g
(currentloc!s0)10984 41276 y(|)g(deliver?*[#X)g(c:^X)g(v:X)g(s:Site])h
(=)f(\(currentloc!s)g(|)h(c!v\))10984 42494 y(|)f(\(val)g(!hosts)
g(=)g([s0)g(s1)g(s2])12553 43711 y Ff(f)g Fi(P)g Ff(g)p
Fi([top)g(currentloc)g(D)g(SD]\)\)\))7845 44929 y(\(\)\))p
0 46163 V 15229 48039 a Ft(Figure)369 b(4.1:)494 b(The)369
b(T)-92 b(op)370 b(Lev)-31 b(el)370 b(and)f(the)g(Daemon)0
51575 y(b)31 b(e)328 b(at)h(site)g Fp(s0)p Ft(.)479 b(W)-92
b(e)328 b(assume)h(that)h(the)e(names)h(of)g(sites)g(whic)-31
b(h)329 b(are)g(activ)-31 b(e)330 b(in)f(the)f(system)h(are)g(stored)f
(in)h(a)g(con\014guration)0 52903 y(\014le)361 b(and)f(w)-31
b(e)361 b(use)f(a)g(library)h(function)h Fp(get)p 18091
52903 349 45 v 419 w(site)e Ft(to)h(read)f(this)h(\014le.)490
b(The)361 b(function)g(returns)f(the)g Fo(i)p Ft(-th)h(site)g(from)g
(the)f(\014le.)0 54232 y(Chapter)370 b(5)f(presen)-31
b(ts)369 b(alternativ)-31 b(e)372 b(w)-31 b(a)g(ys)370
b(of)g(con\014guring)g(the)g(Nomadic)h(Pict)f(system.)1660
55560 y(T)-92 b(urning)523 b(to)g(the)f(comp)31 b(ositional)526
b(translation)e Fr(f)p Fp(P)p Fr(g)p Fp([a)583 b(currenloc)g(D)e(SD])p
Ft(,)523 b(only)g(three)f(clauses)g(are)g(not)h(trivial)0
56888 y(|)442 b(for)h(the)f(lo)31 b(cation-indep)g(enden)-31
b(t)446 b(output,)462 b(agen)-31 b(t)444 b(creation,)463
b(and)442 b(agen)-31 b(t)444 b(migration)h(primitiv)-31
b(es.)715 b(W)-92 b(e)441 b(discuss)h(eac)-31 b(h,)0
58217 y(together)370 b(with)h(their)e(in)-31 b(teractions)372
b(with)e(the)f(daemon,)i(in)f(turn.)0 61315 y Fh(4.2.3)1495
b(Lo)42 b(cation-indep)g(enden)-42 b(t)501 b(output)0
63248 y Ft(A)408 b(lo)31 b(cation-indep)g(enden)-31 b(t)411
b(output)e(in)f(an)g(agen)-31 b(t)410 b Fp(a)d Ft(is)h(implemen)-31
b(ted)410 b(simply)f(b)-31 b(y)409 b(using)f(a)g(lo)31
b(cation-dep)g(enden)-31 b(t)411 b(output)0 64466 y(to)370
b(send)f(a)g(request)g(to)h(the)f(daemon)i Fp(D)p Ft(,)e(at)h(its)g
(site)f Fp(SD)p Ft(,)h(on)g(its)f(c)-31 b(hannel)370
b Fp(message)p Ft(:)7845 66569 y Ff(f)523 b Fi(c@b!v)h
Ff(g)p Fi(e)f(=)8892 67787 y(\(val)1046 b([a)523 b(_)g(D)g(SD])g(=)g(e)
8892 69004 y(message![b)g(c)g(v]\))0 71107 y Ft(The)369
b(corresp)31 b(onding)370 b(replicated)g(input)g(on)f(c)-31
b(hannel)371 b Fp(message)f Ft(in)f(the)h(daemon)p eop
end
%%Page: 26 27
TeXDict begin 26 26 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(26)p 0 9705 52000 45 v 7845 12027
a Ff(f)523 b Fi(c@b!v)h Ff(g)p Fi(e)f(=)7845 13244 y(\(val)1047
b([_)523 b(_)g(D)g(SD])g(=)g(e)8369 14462 y(message![b)g(c)g
(v]\))7845 18115 y Ff(f)g Fi(agent)h(b=P)f(in)g(Q)g Ff(g)p
Fi(e)g(=)7845 19333 y(\()8892 20550 y(val)g([a)g(loc)g(D)g(SD])g(=)g(e)
9938 21768 y(loc?s=)10984 22985 y(\(agent)g(B)g(=)11507
24203 y(\()12553 25421 y(new)g(currentloc)g(:)g(^Site)12553
26638 y(val)g(!b)g(=)g([B)g(currentloc])12553 27856 y(\()g
(currentloc!s)12553 29074 y(|)g(iflocal)g(done!currentloc)h
(then)14645 30291 y(\()f(currentloc!s)14645 31509 y(|)g
Ff(f)p Fi(P)p Ff(g)p Fi([B)g(currentloc)g(D)g(SD]\))13599
32727 y(else)g(\(\))12553 33944 y(|)g(deliver?*[#X)g(c:^X)g(v:X)h
(s:Site])f(=)g(\(currentloc!s)h(|)f(c!v\)\))11507
35162 y(\))11507 36380 y(in)12553 37597 y(done?c)g(=)g(\(loc!s)13599
38815 y(|)g(\(val)g(!b)g(=)g([B)g(c])15168 40033 y Ff(f)p
Fi(Q)p Ff(g)p Fi(e\)\)\))7845 41250 y(\))7845 44903 y
Ff(f)g Fi(migrate)h(to)f(s)g(P)g Ff(g)p Fi(e)g(=)7845
46121 y(\()8892 47339 y(val)g([a)g(currentloc)g(D)g(SD])g(=)g(e)8892
48556 y(currentloc?_=)9938 49774 y(\()g(migrating![a)g
(currentloc])9938 50992 y(|)g(ack?_)g(=)g(\(migrate)g(to)g(s)15691
52209 y(\()g(currentloc!s)15691 53427 y(|)g(currentloc!s)15691
54645 y(|)g Ff(f)p Fi(P)p Ff(g)p Fi(e)12553 55862 y(\)\)\))7845
57080 y(\))p 0 59449 V 15390 61324 a Ft(Figure)369 b(4.2:)494
b(The)369 b(Comp)31 b(ositional)374 b(T)-92 b(ranslation)p
eop end
%%Page: 27 28
TeXDict begin 27 27 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(27)7845 1107 y Fi(|)524 b(message?*[#X)f([b:Agent)
g(loc:^Site])h(c:^X)f(v:X]=)9938 2325 y(loc?s=)g(deliver![c)g(v)g
(s]\))0 4356 y Ft(\014rst)456 b(acquires)h(the)g(lo)31
b(c)-31 b(k)457 b(and)g(the)g(target)h(agen)-31 b(t's)458
b(site)f(name)g Fp(s)g Ft(and)f(sends)g(a)h(lo)31 b(cation-dep)g(enden)
-31 b(t)459 b(message)e(to)h(the)0 5685 y Fp(deliver)360
b Ft(c)-31 b(hannel)360 b(of)g(that)g(agen)-31 b(t.)491
b(The)360 b(lo)31 b(c)-31 b(k)360 b(is)f(relinquished)h(b)-31
b(y)359 b(the)h(agen)-31 b(t)361 b Fq(after)478 b Ft(it)360
b(will)h(receiv)-31 b(e)359 b(the)h(message.)489 b(This)0
7013 y(prev)-31 b(en)g(ts)418 b(the)h(agen)-31 b(t)419
b(migrating)i(b)31 b(efore)418 b(the)g Fp(deliver)h Ft(message)f(arriv)
-31 b(es.)640 b(Note)419 b(that)g(the)f(input)h(on)g
Fp(loc)f Ft(will)i(alw)-31 b(a)g(ys)0 8341 y(succeed,)443
b(as)428 b(the)h(algorithm)i(ensures)c(that)j(all)g(agen)-31
b(ts)429 b(register)g(up)31 b(on)428 b(creation)i(and)e(w)-31
b(e)429 b(assume)g(that)g(messages)g(are)0 9670 y(nev)-31
b(er)357 b(lost.)489 b(The)358 b(in)-31 b(ter-agen)g(t)359
b(comm)-31 b(unications)360 b(in)-31 b(v)g(olv)g(ed)360
b(in)d(deliv)-31 b(ery)358 b(of)f(a)h(single)g(lo)31
b(cation-indep)g(enden)-31 b(t)360 b(output)e(are)0 10998
y(illustrated)371 b(b)31 b(elo)-31 b(w.)16514 12304 y
Fp(a)8983 b(D)8402 b(b@s)p 16414 14695 45 1196 v 25978
14695 V 35542 14695 V 16414 17086 45 2392 v 16436 14972
a Fe(X)17543 15249 y(X)18650 15526 y(X)19757 15802 y(X)20864
16079 y(X)21971 16356 y(X)23078 16633 y(X)24185 16909
y(X)24893 17086 y(X)-1107 b(z)18030 14994 y Fi(message![b)175
b(c)f(v])p 25978 17086 V 35542 17086 V 16414 19477 V
25978 19477 V 26000 17363 a Fe(X)27107 17640 y(X)28214
17917 y(X)29321 18193 y(X)30428 18470 y(X)31535 18747
y(X)32642 19024 y(X)33749 19300 y(X)34457 19477 y(X)-1107
b(z)27594 17385 y Fi(deliver![c)175 b(v)f(s])p 35542
19477 V 16414 21868 V 25978 21868 V 34457 19754 a Fe(\030)33350
20031 y(\030)32243 20308 y(\030)31136 20584 y(\030)30029
20861 y(\030)28922 21138 y(\030)27815 21415 y(\030)26708
21691 y(\030)26000 21868 y(\030)-1107 b(9)27569 20474
y Fi(loc!s)p 35542 21868 V 16414 23064 45 1196 v 25978
23064 V 35542 23064 V 0 25607 a Fh(4.2.4)1495 b(Creation)0
27650 y Ft(In)330 b(order)f(for)h(the)h(daemon's)g(lo)31
b(cation)333 b(c)-31 b(hannel)331 b Fp(loc)f Ft(to)h(b)31
b(e)330 b(k)-31 b(ept)330 b(up)g(to)h(date,)339 b(agen)-31
b(ts)332 b(m)-31 b(ust)330 b(register)g(with)i(the)e(daemon,)0
28978 y(telling)393 b(it)e(their)f(site,)397 b(b)31 b(oth)390
b(when)h(they)g(are)f(created)h(and)f(after)h(they)g(migrate.)558
b(Eac)-31 b(h)391 b(agen)-31 b(t)391 b(records)f(its)h(curren)-31
b(t)389 b(site)0 30307 y(in)-31 b(ternally)416 b(as)e(an)g(output)i(on)
e(its)g Fp(currentloc)i Ft(c)-31 b(hannel.)628 b(This)414
b(c)-31 b(hannel)415 b(is)f(also)h(used)e(as)h(a)g(lo)31
b(c)-31 b(k,)427 b(to)415 b(enforce)f(m)-31 b(utual)0
31635 y(exclusion)309 b(b)31 b(et)-31 b(w)g(een)310 b(the)e(enco)31
b(dings)309 b(of)g(all)g(agen)-31 b(t)310 b(creation)g(and)e(migration)
j(commands)f(within)g(the)e(b)31 b(o)g(dy)308 b(of)h(the)g(agen)-31
b(t.)0 32853 y(The)369 b(enco)31 b(ding)371 b(of)e(an)h(agen)-31
b(t)370 b(creation)h(in)e(an)h(agen)-31 b(t)370 b Fp(a)7845
34774 y Ff(f)523 b Fi(agent)h(b=P)f(in)g(Q)g Ff(g)p Fi(e)g(=)7845
35992 y(\()8892 37209 y(val)g([a)g(loc)g(D)g(SD])g(=)g(e)8892
38427 y(loc?s=)9938 39645 y(\(agent)g(B)g(=)10461 40862
y(\()11507 42080 y(new)g(currentloc)g(:)g(^Site)11507
43298 y(val)g(!b)g(=)g([B)g(currentloc])11507 44515 y(\()g
(currentloc!s)11507 45733 y(|)g(iflocal)g(done!currentloc)h
(then)13599 46950 y(\()f(currentloc!s)13599 48168 y(|)g
Ff(f)p Fi(P)p Ff(g)p Fi([B)g(currentloc)g(D)g(SD]\))12553
49386 y(else)g(\(\))11507 50603 y(|)g(deliver?*[#X)g(c:^X)g(v:X)g
(s:Site])h(=)f(\(currentloc!s)g(|)h(c!v\)\))10461
51821 y(\))10461 53039 y(in)11507 54256 y(done?c)f(=)g(\(loc!s)12553
55474 y(|)g(\(val)g(!b)g(=)g([B)g(c])14122 56692 y Ff(f)p
Fi(Q)p Ff(g)p Fi(e\)\)\))7845 57909 y(\))0 59830 y Ft(\014rst)512
b(acquires)g(the)g(lo)31 b(c)-31 b(k)514 b(and)e(curren)-31
b(t)512 b(site)g Fp(s)g Ft(of)h Fp(a)p Ft(,)549 b(and)512
b(then)g(creates)g(the)h(new)f(agen)-31 b(t)514 b Fp(B)p
Ft(.)f(The)f(b)31 b(o)g(dy)512 b(of)h Fp(B)f Ft(sends)0
61048 y(a)j Fp(currentloc)i Ft(message)f(to)g(the)f(daemon)h(and)g(an)f
(ac)-31 b(kno)g(wledgemen)g(t)519 b(to)d Fp(a)g Ft(on)f
Fp(done)h Ft(\(passing)g(the)f(name)h(of)g Fp(B)p Ft('s)0
62266 y Fp(currentloc)315 b Ft(c)-31 b(hannel\).)475
b(It)313 b(then)h(initializes)i(the)d(lo)31 b(c)-31 b(k)314
b(for)g Fp(B)f Ft(and)g(allo)-31 b(ws)316 b(the)d(enco)31
b(ding)314 b(of)g(the)g(b)31 b(o)g(dy)313 b Fp(P)g Ft(of)h
Fp(B)f Ft(to)h(pro)31 b(ceed.)0 63483 y(Mean)-31 b(while,)389
b(in)383 b Fp(a)h Ft(the)f(lo)31 b(c)-31 b(k)384 b(is)f(k)-31
b(ept)384 b(un)-31 b(til)385 b(the)f(ac)-31 b(kno)g(wledgemen)g(t)387
b(from)d Fp(B)f Ft(is)g(receiv)-31 b(ed.)535 b(The)384
b(name)g Fp(b)f Ft(from)h(the)f(high-)0 64701 y(lev)-31
b(el)327 b(language)h(is)e(enco)31 b(ded)326 b(as)g(a)g(pair)g(of)h
Fp(B)f Ft(and)g Fp(currentloc)p Ft(.)480 b(The)326 b(b)31
b(o)g(dy)326 b(of)g Fp(B)g Ft(is)g(put)g(in)g(parallel)i(with)f(the)g
(replicated)0 65919 y(input)7845 67840 y Fi(|)524 b(deliver?*[#X)f
(c:^X)g(v:X)g(s:Site])h(=)f(\()g(currentloc!s)g(|)g(c!v)g(\))0
69872 y Ft(whic)-31 b(h)424 b(will)h(receiv)-31 b(e)423
b(forw)-31 b(arded)424 b(messages)f(for)g(c)-31 b(hannels)424
b(in)f Fp(b)g Ft(from)h(the)f(daemon,)438 b(send)423
b(an)g(ac)-31 b(kno)g(wledgemen)g(t)427 b(bac)-31 b(k)0
71200 y(\(on)370 b Fp(currenloc)p Ft(\),)h(and)f(deliv)-31
b(er)370 b(the)f(v)-61 b(alue)370 b(lo)31 b(cally)371
b(to)f(the)f(appropriate)i(c)-31 b(hannel.)p eop end
%%Page: 28 29
TeXDict begin 28 28 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(28)1660 1107 y(The)370 b(in)-31
b(ter-agen)g(t)371 b(comm)-31 b(unications)373 b(in)-31
b(v)g(olv)g(ed)371 b(in)f(a)f(single)h(agen)-31 b(t)371
b(creation)g(are)e(illustrated)i(b)31 b(elo)-31 b(w.)16514
3735 y Fp(a)8983 b(b)g(D)p 16414 7322 45 598 v 16414
5529 V 13027 6326 a(agent)582 b(b)g(=)f(...)p 35542 7322
45 2392 v 16414 8517 45 1196 v 25978 8517 V 35542 8517
V 16414 10908 45 2392 v 16436 8540 9565 45 v 16436 8518
a Fd(\033)17233 7920 y Fi(done!currentloc)p 25978 10908
45 2392 v 26000 8517 a Fc(s)26000 8794 y Fe(X)27107 9071
y(X)28214 9348 y(X)29321 9624 y(X)30428 9901 y(X)31535
10178 y(X)32642 10455 y(X)33749 10731 y(X)34457 10908
y(X)-1107 b(z)27594 8816 y Fi(currentloc!s)p 35542 10908
V 16414 12104 45 1196 v 25978 12104 V 35542 12104 V 0
14686 a Fh(4.2.5)1495 b(Migration)0 16619 y Ft(The)369
b(enco)31 b(ding)371 b(of)e(a)h Fp(migrate)g Ft(in)f(agen)-31
b(t)371 b Fp(a)7845 18722 y Ff(f)523 b Fi(migrate)h(to)f(s)g(P)g
Ff(g)p Fi(e)g(=)7845 19940 y(\()8892 21157 y(val)g([a)g(currentloc)g(D)
g(SD])g(=)g(e)8892 22375 y(currentloc?_=)9938 23592 y(\()g
(migrating![a)g(currentloc])9938 24810 y(|)g(ack?_)g(=)g
(\(migrate)g(to)g(s)12030 26028 y(\()g(currentloc!s)12030
27245 y(|)g(currentloc!s)12030 28463 y(|)g Ff(f)p Fi(P)p
Ff(g)p Fi(e)9938 29681 y(\)\)\))7845 30898 y(\))0 33002
y Ft(\014rst)435 b(acquires)g(the)g(lo)31 b(c)-31 b(k)437
b(for)e Fp(a)g Ft(\(discarding)h(the)g(curren)-31 b(t)435
b(site)g(data\).)692 b(It)436 b(then)f(sends)f(a)i Fp(migrating)g
Ft(message)g(to)g(the)0 34219 y(daemon,)366 b(w)-31 b(aits)366
b(for)e(an)g Fp(ack)p Ft(,)h(migrates)g(to)g(its)f(new)g(site)g
Fp(s)p Ft(,)h(sends)e(a)h Fp(currentloc)h Ft(message)f(to)g(the)g
(daemon)h(\(with)h(the)0 35437 y(new)344 b(site)g Fp(s)p
Ft(\),)350 b(thereb)-31 b(y)345 b(relinquishing)g(the)f(lo)31
b(c)-31 b(k)345 b(at)g(the)f(daemon,)351 b(and)344 b(releases)f(the)h
(lo)31 b(cal)346 b(lo)31 b(c)-31 b(k)345 b(\(also)g(with)g(the)f(new)g
(site)0 36655 y Fp(s)p Ft(\).)493 b(The)370 b(replicated)g(input)g(on)f
Fp(migrating)i Ft(in)e(the)g(daemon)7845 38758 y Fi(|)524
b(migrating?*[b:Agent)f(loc:^Site]=)9938 39975 y(loc?s=)g(ack![])0
42189 y Ft(\014rst)371 b(acquires)h(the)g(lo)31 b(c)-31
b(k)373 b(and)f(the)g(curren)-31 b(t)371 b(site)h(of)h
Fp(a)e Ft(and)h(sends)f(an)h Fp(ack)g Ft(to)h Fp(a)e
Ft(at)i(that)g(site.)500 b(The)372 b(in)-31 b(ter-agen)g(t)374
b(comm)-31 b(u-)0 43518 y(nications)371 b(in)-31 b(v)g(olv)g(ed)372
b(in)d(a)h(single)g(migration)h(are)e(sho)-31 b(wn)370
b(b)31 b(elo)-31 b(w.)21296 46146 y Fp(a)8983 b(D)p 21196
48537 V 30760 48537 V 21196 50928 45 2392 v 21218 48814
a Fe(X)22325 49091 y(X)23432 49367 y(X)24539 49644 y(X)25646
49921 y(X)26753 50198 y(X)27860 50474 y(X)28967 50751
y(X)29675 50928 y(X)-1107 b(z)22812 48836 y Fi(migrating!a)p
30760 50928 V 21196 53319 V 29675 51205 a Fe(\030)28568
51482 y(\030)27461 51758 y(\030)26354 52035 y(\030)25247
52312 y(\030)24140 52589 y(\030)23033 52865 y(\030)21926
53142 y(\030)21218 53319 y(\030)g(9)23310 51924 y Fi(ack!)p
30760 53319 V 21196 55710 45 598 v 21196 53917 V 18100
54714 a Fp(migrate)582 b(to)g(s)p 30760 55710 45 2392
v 21196 58101 V 21218 55987 a Fe(X)22325 56264 y(X)23432
56540 y(X)24539 56817 y(X)25646 57094 y(X)26753 57371
y(X)27860 57647 y(X)28967 57924 y(X)29675 58101 y(X)-1107
b(z)22812 56009 y Fi(currentloc!s)p 30760 58101 V 21196
59297 45 1196 v 30760 59297 V 0 61283 a Ft(The)468 b(whole)h(program)g
(structure)e(is)g(in)i(Figure)e(4.3.)790 b(In)467 b(our)h(translation)i
(w)-31 b(e)468 b(ha)-31 b(v)g(e)469 b(made)f(an)g(assumption)i(that)f
(the)0 62611 y(application)526 b(program)d(and)f(translation)j(enco)31
b(ding)523 b(are)g(compiled)h(and)e(executed)h(together,)562
b(and)523 b(so)f(the)h(program)0 63940 y(b)31 b(egins)303
b(from)g(a)g(single)h(toplev)-31 b(el)305 b(whic)-31
b(h)303 b(creates)g(a)g(daemon)h(and)f(other)g(agen)-31
b(ts)304 b(that)f(immediately)k(migrate)d(if)f(necessary)-92
b(.)0 65268 y(Since)362 b(Nomadic)i(Pict)g(is)e(though)-31
b(t)364 b(of)f(to)f(b)31 b(e)362 b(a)h(language)h(for)e(protot)-31
b(yping)365 b(this)e(is)f(fair)g(enough.)491 b(Ho)-31
b(w)g(ev)g(er,)366 b(distributed)0 66597 y(programs)513
b(can)f(often)i(b)31 b(e)512 b(split)h(in)g(man)-31 b(y)513
b(\014les)f(whic)-31 b(h)514 b(w)-31 b(e)513 b(should)f(b)31
b(e)512 b(able)h(to)g(compile)h(and)f(execute)g(on)f(separate)0
67925 y(mac)-31 b(hines.)480 b(In)326 b(this)i(case,)336
b(w)-31 b(e)327 b(should)h(include)f(the)h(daemon)g(de\014nition)h
(only)f(for)f(one)g(executable)i(and)e(exp)31 b(ort)328
b(its)f(name)0 69253 y(\(and)288 b(all)h(other)e(names)h(whic)-31
b(h)288 b(are)f(used)g(to)h(comm)-31 b(unicate)290 b(with)e(the)g
(daemon\))h(using)e(the)h(library)g(functions)g(for)g(trading)0
70582 y(names)329 b(in)f(the)h(system.)480 b(Other)328
b(executables)h(w)-31 b(ould)330 b(ha)-31 b(v)g(e)329
b(to)h(subscrib)31 b(e)327 b(for)h(these)h(names)g(b)31
b(efore)328 b(they)h(can)f(use)g(them.)p eop end
%%Page: 29 30
TeXDict begin 29 29 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(29)p 0 18740 52000 45 v 7845 21007
a Fi(import)524 b("Nstd/Map")7845 22224 y(import)g("Graphics/Graphics")
7845 24660 y(program)g(hosts)f(:)g([Site)g(Site)g(Site])h(=)7845
25877 y(\()8892 27095 y(...)7845 28313 y(\))7845 30748
y(new)g(migrating)f(:)g(^[Agent)g(^Site])7845 31966 y(new)h(message)
1569 b(:)523 b(^[#X)g([Agent)g(^Site])h(^X)f(X])7845
33183 y(new)h(deliver)1569 b(:)523 b(^[#X)g(^X)g(X)g(Site])7845
34401 y(new)h(ack)3661 b(:)523 b(^[])7845 35619 y(new)h(done)3138
b(:)523 b(^^Site)7845 38054 y Ff(f)p Fi(Agent)p Ff(g)h
Fi(=)f([Agent)g(^Site])7845 39272 y Ff(f)p Fi(Site)p
Ff(g)h Fi(=)f(Site)7845 41707 y Ff(f)g Fi(toplevel)h(P)f(hosts)g
Ff(g)p Fi([Agent)g(^Site)g(Agent)h(Site])f(=)7845 42925
y(\()8892 44142 y(...)7845 45360 y(\))7845 46578 y Ff(f)g
Fi(c@b!v)h Ff(g)p Fi(e)f(=)g(...)7845 47795 y Ff(f)g
Fi(agent)h(b=P)f(in)g(Q)g Ff(g)p Fi(e)g(=)g(...)7845
49013 y Ff(f)g Fi(migrate)h(to)f(s)g(P)g Ff(g)p Fi(e)g(=)g(...)p
0 50413 V 17260 52289 a Ft(Figure)369 b(4.3:)494 b(The)369
b(Program)h(Structure)p eop end
%%Page: 30 31
TeXDict begin 30 30 bop 0 9409 a Fj(Chapter)861 b(5)0
14944 y FA(Compilation)1033 b(and)g(Execution)0 24343
y Fy(5.1)1793 b(T)-149 b(o)597 b(Get)h(Started)0 26657
y Ft(T)-92 b(o)370 b(execute)f(a)h(Nomadic)h(Pict)f(program,)h(e.g.)
8369 28678 y Fi(run)523 b(print!"Hello)g(world!")0 30699
y Ft(\014rst)483 b(place)h(it)g(in)f(a)g(\014le)h(named)g(with)g(a)g
Fp(.pi)f Ft(su\016x,)512 b(e.g.)836 b Fp(prog.pi)p Ft(,)513
b(and)483 b(then)h(compile)g(and)g(execute)g(this)f(\014le)h(b)-31
b(y)0 31917 y(running)369 b(the)h(Nomadic)h(Pict)f(compiler)h(as)e
(follo)-31 b(ws:)8369 33938 y Fi(np)523 b(prog.pi)0 35959
y Ft(This)416 b(spa)-31 b(wns)417 b(a)f(Nomadic)i(Pict)f(virtual)h(mac)
-31 b(hine)417 b(on)f(y)-31 b(our)417 b(curren)-31 b(t)415
b(mac)-31 b(hine)418 b(whic)-31 b(h)417 b(will)g(execute)g(the)f
(program.)634 b(If)0 37177 y(y)-31 b(our)343 b(program)g(con)-31
b(tains)344 b(only)g(the)e(Pict)i(language,)350 b(y)-31
b(ou)344 b(ma)-31 b(y)343 b(prefer)f(to)h(c)-31 b(ho)31
b(ose)343 b(a)g(standard)g(Pict)g(compiler)h(as)e(follo)-31
b(ws)8369 39198 y Fi(np)523 b(-set)g(cc)g(prog.pi)g(-o)g(prog)0
41329 y Ft(or)451 b(simply)h Fp(pict)582 b(prog.pi)g(-o)g(prog)p
Ft(,)472 b(and)452 b(execute)f Fp(prog)p Ft(.)739 b(The)452
b(nativ)-31 b(e)452 b(co)31 b(de)452 b(generated)f(b)-31
b(y)452 b(the)f(Pict)h(compiler)h(is)0 42658 y(m)-31
b(uc)g(h)442 b(faster)f(then)h(the)f(co)31 b(de)441 b(in)-31
b(terpreted)442 b(b)-31 b(y)442 b(the)f(Nomadic)i(Pict)f(virtual)h(mac)
-31 b(hine)443 b(but)e(then)h(y)-31 b(ou)442 b(cannot)g(use)f(the)0
43986 y(primitiv)-31 b(es)371 b(whic)-31 b(h)370 b(are)f(c)-31
b(haracteristic)371 b(for)e(Nomadic)i(Pict.)0 47629 y
Fy(5.2)1793 b(Separate)599 b(Compilation)0 49943 y Ft(The)474
b(compiler)i(pro)-31 b(vides)474 b(a)g(simple)h(facilit)-31
b(y)477 b(for)d(breaking)i(up)d(large)i(programs)g(in)-31
b(to)475 b(parts)f(\(mo)31 b(dules\),)503 b(storing)475
b(the)0 51161 y(parts)369 b(in)h(separate)f(\014les,)h(and)f(compiling)
j(these)d(\014les)g(separately)-92 b(.)494 b(In)368 b(the)i(b)31
b(eginning)370 b(of)g(a)g(program)g(y)-31 b(ou)369 b(can)h(write)8369
53182 y Fi(import)523 b("name")0 55313 y Ft(where)440
b Fp("name")g Ft(is)g(an)g(absolute)i(or)d(relativ)-31
b(e)442 b(pathname)g(\(not)f(including)g(the)g(su\016x)f
Fp(.pi)p Ft(\))g(of)h(a)f(separately)h(compiled)0 56642
y(mo)31 b(dule)422 b(to)g(b)31 b(e)421 b(imp)31 b(orted.)650
b(The)422 b(mo)31 b(dule)422 b(will)h(b)31 b(e)421 b(included)h(at)g
(the)g(p)31 b(oin)-31 b(t)422 b(where)f(the)h(\014rst)f
Fp(import)h Ft(for)f(this)h(mo)31 b(dule)0 57970 y(name)331
b(app)31 b(ears.)479 b(If)331 b(a)f(relativ)-31 b(e)332
b(pathname)g(is)e(used,)338 b(b)31 b(oth)331 b(the)g(curren)-31
b(t)330 b(directory)h(and)f(a)h(cen)-31 b(tral)331 b(directory)g(of)g
(Nomadic)0 59298 y(Pict)370 b(library)g(\014les)f(are)g(searc)-31
b(hed.)1660 60516 y(Before)328 b(a)f(\014le)h(can)f(b)31
b(e)327 b(imp)31 b(orted)328 b(b)-31 b(y)328 b(other)f(\014les,)336
b(it)328 b(m)-31 b(ust)328 b(b)31 b(e)327 b(compiled)i(b)-31
b(y)327 b(the)h(compiler)g(to)g(yield)g(a)g(\014le)f(with)i(su\016x)0
61734 y Fp(.px)p Ft(,)370 b(e.g.)493 b(this)370 b(b)31
b(elo)-31 b(w)8369 63755 y Fi(np)523 b(-set)g(sep)g(prog.pi)g(-o)g
(prog.px)0 65887 y Ft(pro)31 b(duces)406 b(an)h(ob)61
b(ject)408 b(\014le)g Fp(prog.px)f Ft(and)g(do)31 b(es)407
b Fq(not)511 b Ft(spa)-31 b(wn)408 b(a)f(run)-31 b(time)408
b(system)f(to)h(execute)f(it.)606 b(Then)407 b(w)-31
b(e)408 b(can)f(imp)31 b(ort)0 67215 y(the)343 b(mo)31
b(dule)343 b(in)g(other)g(programs)g(using)g Fp(import)582
b("prog")343 b Ft(and)g(compile)h(as)f(b)31 b(efore.)483
b(A)343 b(few)g(basic)g(library)g(mo)31 b(dules)343 b(are)0
68543 y(imp)31 b(orted)370 b(b)-31 b(y)370 b(default.)1660
69872 y(The)463 b(Pict)g(libraries)f(of)g(precompiled)h(mo)31
b(dules)463 b(often)g(con)-31 b(tain)463 b(C)g(pro)31
b(cedures)460 b(and)i(so)g(they)g(cannot)h(b)31 b(e)462
b(directly)0 71200 y(used)374 b(in)h(programs)g(whic)-31
b(h)376 b(are)e(in)-31 b(terpreted)375 b(b)-31 b(y)375
b(the)g(Nomadic)i(Pict)f(virtual)g(mac)-31 b(hine)376
b(\(one)f(can,)i(of)e(course,)h(use)e(them)25447 74521
y(30)p eop end
%%Page: 31 32
TeXDict begin 31 31 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(31)0 1107 y(in)453 b(programs)g(whic)-31
b(h)453 b(are)g(compiled)h(to)f(the)g(nativ)-31 b(e)454
b(co)31 b(de\).)744 b(Therefore)452 b(w)-31 b(e)453 b(tried)g(to)g
(supp)31 b(ort)453 b(in)f(the)h(Nomadic)i(Pict)0 2435
y(virtual)314 b(mac)-31 b(hine)314 b(all)f(Pict)h(core)e(libraries)h
(and)g(all)g(those)g(whic)-31 b(h)313 b(are)g(often)g(used)f(\(more)h
(libraries)g(ma)-31 b(y)314 b(b)31 b(e)311 b(p)31 b(orted)313
b(in)g(the)0 3764 y(future\).)532 b(The)382 b(new)h(libraries)f(ha)-31
b(v)g(e)383 b(the)g(same)f(names)h(and)f(in)-31 b(terfaces)383
b(|)f(just)g(a)h(di\013eren)-31 b(t)382 b(path)h(need)f(to)h(b)31
b(e)381 b(sp)31 b(eci\014ed)0 5092 y(in)370 b(the)g Fp(import)g
Ft(declaration.)496 b(A)369 b(rule)g(of)h(th)-31 b(um)g(b)371
b(is)f(that)g(if)g(an)g(original)i(Pict)e(library)h(has)e(name)h
Fp(Path/Name)h Ft(then)f(the)0 6420 y(library)463 b(whic)-31
b(h)464 b(is)f(recognised)g(b)-31 b(y)463 b(the)g(virtual)h(mac)-31
b(hine)464 b(will)h(ha)-31 b(v)g(e)463 b(a)g(name)h Fp(Npath/Name)g
Ft(\(this)f(do)31 b(es)463 b(not)g(w)-31 b(ork)464 b(for)0
7749 y(libraries)370 b(whic)-31 b(h)370 b(are)f(supp)31
b(orted)369 b(b)-31 b(y)369 b(the)g(Nomadic)j(Pict)e(system)f(only)h(|)
f(they)h(ma)-31 b(y)370 b(ha)-31 b(v)g(e)371 b(arbitrary)e(names\).)
1660 9077 y(The)451 b(curren)-31 b(t)450 b(distribution)i(includes)f
(libraries)g(implemen)-31 b(ting)454 b(a)d(v)-61 b(ariet)-31
b(y)451 b(of)g(data)h(structures,)470 b(in)-31 b(terfaces)451
b(to)h(op-)0 10405 y(erating)394 b(system)f(and)g(the)g(Nomadic)i(Pict)
f(run)-31 b(time)393 b(system,)400 b(and)393 b(some)g(exp)31
b(erimen)-31 b(tal)394 b(services,)399 b(suc)-31 b(h)392
b(as)h(distributed)0 11734 y(ev)-31 b(en)g(ts.)485 b(Those)344
b(libraries)g(whic)-31 b(h)345 b(use)e(calls)i(to)f(the)g(Nomadic)i
(Pict)f(run)-31 b(time)344 b(system)g(or)g(con)-31 b(tain)346
b(an)-31 b(y)344 b(constructs)g(whic)-31 b(h)0 13062
y(are)338 b(c)-31 b(haracteristic)339 b(for)f(Nomadic)i(Pict)f(will)h
(not)e(compile)i(using)e(the)g(original)i(Pict)f(compiler.)484
b(All)339 b(libraries)f(supp)31 b(orted)0 14390 y(b)-31
b(y)369 b(the)h(Nomadic)h(Pict)f(virtual)h(mac)-31 b(hine)371
b(are)e(describ)31 b(ed)368 b(in)h(full)i(in)e([W)-92
b(o)61 b(j00b)r(].)1660 15719 y(Unfortunately)-92 b(,)290
b(the)267 b(standard)f(libraries)h(from)g(the)g(Nomadic)h(Pict)g
(distribution)g(can)f(only)g(use)f(Lo)-31 b(w-Lev)g(el)268
b(Nomadic)0 17047 y(Pict)458 b(\(and)g(so)e(only)i(distributed)g
(idioms)g(whic)-31 b(h)458 b(are)e(lo)31 b(cation-a)-31
b(w)g(are\).)760 b(This)458 b(is)e(a)i(result)e(of)i(early)f(design)g
(decisions)0 18376 y(to)394 b(put)g(the)f(translation)j(from)e(High-)g
(to)g(Lo)-31 b(w-Lev)g(el)395 b(Nomadic)g(Pict)g(at)f(the)f(top)i(of)e
(the)h(compiler)g(arc)-31 b(hitecture.)567 b(The)0 19704
y(mo)31 b(dules)287 b(of)f(libraries)h(are)f(precompiled)i(to)e(an)h
(in)-31 b(termediate)289 b(co)31 b(de)286 b(whic)-31
b(h)287 b(can)f(b)31 b(e)286 b(link)-31 b(ed)287 b(with)h
(user-de\014ned)d(programs.)0 21032 y(The)386 b(in)-31
b(termediate)387 b(co)31 b(de)385 b(is)h(fairly)g(lo)-31
b(w-lev)g(el)388 b(and)e(is)f(link)-31 b(ed)387 b Fq(after)504
b Ft(the)385 b(de\014nitions)i(of)f(the)f(translation)j(from)e(High-)g
(to)0 22361 y(Lo)-31 b(w-Lev)g(el)452 b(Nomadic)g(Pict)f(are)f(applied)
i(in)e(programs.)737 b(The)450 b(rest)g(of)h(this)f(c)-31
b(hapter)451 b(mostly)h(deals)e(with)i(distributed)0
23689 y(programming)371 b(in)f(the)f(Nomadic)i(Pict)g(system.)0
27288 y Fy(5.3)1793 b(Language)597 b(T)-149 b(ranslations)0
29601 y Ft(If)476 b(our)f(program)i(do)31 b(es)475 b(not)i(use)e(an)-31
b(y)477 b(high-lev)-31 b(el)478 b(language)f(primitiv)-31
b(es)478 b(then)e(it)h(can)f(b)31 b(e)475 b(organised)i(simply)g(as)e
(a)i(\014le)0 30819 y(con)-31 b(taining)522 b(a)e(sequence)f(of)h
(declarations)h(preceded)e(b)-31 b(y)520 b(a)g(n)-31
b(um)g(b)31 b(er)519 b(of)h Fp(import)g Ft(clauses.)944
b(Otherwise,)558 b(w)-31 b(e)520 b(need)f(to)0 32037
y(structure)369 b(the)g(program)h(as)f(follo)-31 b(ws)8369
33852 y Fi(import)523 b("name")8369 35069 y Ff(f)p Fi(-)g(other)g
(imports)g(and)g(any)g(global)g(declarations)h(-)p Ff(g)8369
37505 y Fi(program)f(par)g(:)g(T)g(=)8369 38722 y(\()9415
39940 y Ff(f)p Fi(-)g(a)g(user-defined)g(program)g(in)g(the)h
(high-level)f(language)g(-)p Ff(g)8369 41158 y Fi(\))8369
43593 y Ff(f)p Fi
(-*****************************************************************)
9938 46028 y(any)g(global)g(declarations)g(of)g(the)h(compositional)f
(translation)g(here)h(-)p Ff(g)8369 48463 y(f)p Fi(toplevel)f(par)p
Ff(g)g Fi(T')g(=)8369 49681 y(\()9415 50899 y Ff(f)p
Fi(-)g(top-level)g(definition)g(here)g(-)p Ff(g)8369
52116 y Fi(\))8369 53334 y Ff(f)p Fi(-)g(a)g(compositional)g
(translation)g(of)h(types)f(and)g(primitives)g(-)p Ff(g)0
55260 y Ft(After)361 b(imp)31 b(orts)362 b(w)-31 b(e)361
b(can)g(ha)-31 b(v)g(e)362 b(an)-31 b(y)362 b(global)h(declarations)g
(suc)-31 b(h)360 b(as)h(constan)-31 b(ts)362 b(and)f(global)i
(functions)f(whic)-31 b(h)362 b(w)-31 b(e)361 b(w)-31
b(an)g(t)363 b(to)0 56588 y(use)330 b(in)g(a)g(program)h
Fq(and)445 b Ft(the)330 b(comp)31 b(ositional)334 b(translation.)482
b(Then)330 b(w)-31 b(e)330 b(can)h(de\014ne)f(an)g(actual)i(program)f
(in)f(the)h(high-lev)-31 b(el)0 57916 y(language)371
b(using)f(the)f Fp(program)h Ft(construct.)1660 59245
y(F)-92 b(ollo)-31 b(wing)330 b(the)d(star)f(line)h(are)g(declarations)
h(of)f(the)g(comp)31 b(ositional)330 b(translation)f(\(they)e(can)g(b)
31 b(e)326 b(stored)h(in)g(a)f(separate)0 60573 y(\014le)417
b(if)g(required\).)635 b(Firstly)-92 b(,)429 b(w)-31
b(e)417 b(declare)g(an)-31 b(y)417 b(global)i(constan)-31
b(ts,)430 b(functions,)g(and)417 b(c)-31 b(hannel)418
b(names)f(whic)-31 b(h)417 b(are)g(used)f(b)-31 b(y)0
61901 y(the)378 b(de\014nitions)h(of)f(the)g(comp)31
b(ositional)381 b(translation,)i(then)378 b(w)-31 b(e)378
b(de\014ne)f(a)h(top-lev)-31 b(el)380 b(\(in)f(the)f(lo)-31
b(w-lev)g(el)380 b(language\))g(using)0 63230 y Fp(toplevel)p
Ft(.)492 b(The)365 b(top-lev)-31 b(el)366 b(de\014nes)e(the)h(top-lev)
-31 b(el)367 b(actions)f(suc)-31 b(h)364 b(as)g(spa)-31
b(wning)366 b(the)f(distributed)g(infrastructure)g(whic)-31
b(h)0 64558 y(ha)g(v)g(e)398 b(to)f(b)31 b(e)396 b(executed)h(b)31
b(efore)397 b(the)g(high-lev)-31 b(el)398 b(program)g(starts.)575
b(Finally)-92 b(,)405 b(w)-31 b(e)398 b(ha)-31 b(v)g(e)397
b(de\014nitions)h(of)f(the)g(comp)31 b(ositional)0 65887
y(translation)400 b(of)f(all)g(in)-31 b(teresting)399
b(t)-31 b(yp)31 b(es)398 b(and)h(high-lev)-31 b(el)400
b(prmitiv)-31 b(es.)580 b(If)398 b(some)g(de\014nition)h(is)f(missing,)
407 b(the)398 b(compiler)h(will)0 67215 y(replace)502
b(a)g(high-lev)-31 b(el)504 b(primitiv)-31 b(e)505 b(b)-31
b(y)502 b(its)g(direct)g(equiv)-61 b(alen)-31 b(t)504
b(in)e(the)g(lo)-31 b(w-lev)g(el)505 b(language)f(if)f(it)f(exists;)569
b(the)502 b(lo)31 b(cation-)0 68543 y(indep)g(enden)-31
b(t)370 b(output)g Fp(c@a!v)g Ft(will)h(b)31 b(e)369
b(replaced)g(b)-31 b(y)369 b Fp(iflocal)583 b(c!v)f(then)f(\(\))h
(else)g(\(\))p Ft(.)1660 69872 y(The)356 b(Nomadic)h(Pict)f
(distribution)i(con)-31 b(tains)356 b(a)g(few)g(example)g(distributed)h
(infrastructure)e(enco)31 b(dings)356 b(\(eac)-31 b(h)356
b(in)g(one)0 71200 y(\014le\).)558 b(They)391 b(can)g(b)31
b(e)390 b(included)h(in)g(user-de\014ned)e(programs)i(b)31
b(elo)-31 b(w)392 b(the)f(star)g(line)g(as)g(ab)31 b(o)-31
b(v)g(e,)397 b(with)392 b(just)f(minor)g(c)-31 b(hanges)p
eop end
%%Page: 32 33
TeXDict begin 32 32 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(32)0 1107 y(in)402 b(the)g(top-lev)-31
b(el)404 b(declaration.)593 b(The)402 b(top-lev)-31 b(el)404
b(of)e(eac)-31 b(h)403 b(infrastructure)f(enco)31 b(ding)403
b(de\014nes)e(a)h(tuple)g(of)h(a)f(few)g(\(usually)0
2435 y(2-3\))369 b(activ)-31 b(e)369 b(sites)e(whic)-31
b(h)368 b(is)f(passed)g(to)h(the)g(user-de\014ned)e(program)i(via)g
(the)g(parameter)g Fp(par)f Ft(of)h(t)-31 b(yp)31 b(e)368
b Fp(T)581 b(=)h([Site)g(...)0 3764 y(Site])p Ft(.)508
b(This)375 b(parameter)g(is)f(lik)-31 b(ely)376 b(to)f(b)31
b(e)374 b(customized)i(to)f(accommo)31 b(date)377 b(the)d(real)h(n)-31
b(um)g(b)31 b(er)374 b(of)h(sites)f(whic)-31 b(h)375
b(are)f(going)0 5092 y(to)462 b(b)31 b(e)461 b(used.)769
b(This)461 b(ma)-31 b(y)463 b(sometimes)g(require)e(to)h(analyse)g(the)
g(co)31 b(de)461 b(of)h(the)g(top-lev)-31 b(el)464 b(and,)485
b(e.g.)770 b(spa)-31 b(wn)462 b(additional)0 6420 y(daemons)401
b(on)g(sites,)409 b(etc.)588 b(In)400 b(the)h(end)f(of)i(this)f(c)-31
b(hapter,)409 b(w)-31 b(e)401 b(describ)31 b(e)400 b(ho)-31
b(w)402 b(to)f(pass)f(real)h(mac)-31 b(hine)403 b(and)d(p)31
b(ort)401 b(n)-31 b(um)g(b)31 b(ers)0 7749 y(to)476 b(Nomadic)i(Pict)e
(programs,)503 b(and)476 b(con\014gure)g(the)f(distributed)i(Nomadic)g
(Pict)g(run)-31 b(time)476 b(system)g(to)g(run)f(on)h(man)-31
b(y)0 9077 y(mac)g(hines.)1660 10405 y(More)401 b(c)-31
b(hanges)402 b(in)g(the)g(translations)h(are)e(required)g(if)h(a)g
(user-de\014ned)e(program)i(is)g(scattered)g(in)f(man)-31
b(y)403 b(\014les)e(to)h(b)31 b(e)0 11734 y(compiled)316
b(on)e(di\013eren)-31 b(t)315 b(mac)-31 b(hines.)475
b(In)314 b(this)g(case,)326 b(w)-31 b(e)314 b(ha)-31
b(v)g(e)316 b(to)e(cop)-31 b(y)315 b(the)g(top-lev)-31
b(el)316 b(and)e(the)h(comp)31 b(ositional)317 b(translation)0
13062 y(in)412 b(all)i(\014les,)423 b(mo)31 b(difying)414
b(the)e(top-lev)-31 b(el)415 b(accordingly)-92 b(,)425
b(e.g.)622 b(selecting)413 b(one)f(to)h(b)31 b(e)411
b(a)i(serv)-31 b(er)411 b(and)h(other)g(the)h(clien)-31
b(ts,)424 b(etc.)0 14390 y(W)-92 b(e)307 b(also)h(ha)-31
b(v)g(e)309 b(to)f(trade)g(names)g(and)g(v)-61 b(alues)307
b(in)h(the)g(distributed)g(system)g(so)f(that)i(di\013eren)-31
b(t)308 b(parts)f(of)i(the)e(comp)31 b(ositional)0 15719
y(translation)357 b(can)e(comm)-31 b(unicate)357 b(using)e(the)g(same)g
(names)g(of)g(c)-31 b(hannels)355 b(and)g(agen)-31 b(ts.)489
b(Belo)-31 b(w)356 b(w)-31 b(e)355 b(describ)31 b(e)354
b(the)h(idea,)j(see)0 17047 y(also)370 b(example)h(programs)e(included)
h(in)g(the)f(Nomadic)i(Pict)f(distribution)h(for)f(details.)0
20708 y Fy(5.4)1793 b(T)-149 b(rading)598 b(Names)g(and)g(V)-149
b(alues)0 23132 y Ft(Nomadic)340 b(Pict)g(has)e(b)31
b(een)338 b(designed)h(as)f(a)h(language)i(for)d(protot)-31
b(yping)341 b(distributed)f(applications)h(and)e(w)-31
b(e)339 b(almost)h(nev)-31 b(er)0 24461 y(needed)421
b(to)i(split)f(programs)h(in)f(man)-31 b(y)422 b(\014les)g(whic)-31
b(h)423 b(are)e(compiled)j(and)d(executed)i(separately)f(on)g
(di\013eren)-31 b(t)422 b(mac)-31 b(hines.)0 25789 y(W)-92
b(e)468 b(w)-31 b(ere)468 b(simply)i(spa)-31 b(wning)470
b(di\013eren)-31 b(t)469 b(parts)f(of)i(distributed)f(programs)g
(dynamically)j(on)c(\\empt)-31 b(y")471 b(Nomadic)g(Pict)0
27117 y(run)-31 b(time)347 b(systems,)352 b(using)346
b(agen)-31 b(ts)348 b(and)f(migration.)487 b(Ho)-31 b(w)g(ev)g(er,)353
b(o)31 b(ccasionally)349 b(it)f(is)e(con)-31 b(v)g(enien)g(t)348
b(to)g(compile)g(and)e(execute)0 28446 y(serv)-31 b(er)369
b(and)i(clien)-31 b(t)371 b(programs)g(\(lik)-31 b(ely)372
b(to)f(b)31 b(e)370 b(on)g(di\013eren)-31 b(t)371 b(mac)-31
b(hines\))372 b(separetly)e(and)h(at)g(di\013eren)-31
b(t)370 b(time,)i(e.g.)497 b(in)370 b(demo)0 29774 y(programs.)1660
30992 y(The)313 b Fp(Nstd/Sys)g Ft(library)g(o\013ers)f(t)-31
b(w)g(o)314 b(functions)f Fp(publish)g Ft(and)g Fp(subscribe)h
Ft(that)f(can)g(b)31 b(e)312 b(used)f(in)i(order)f(to)h(exc)-31
b(hange)0 32209 y(names,)507 b(basic)479 b(v)-61 b(alues,)506
b(and)479 b(an)-31 b(y)480 b(complex)g(v)-61 b(alues)478
b(whic)-31 b(h)480 b(can)f(b)31 b(e)478 b(sen)-31 b(t)479
b(along)h(c)-31 b(hannels)479 b(at)h(run)-31 b(time,)507
b(th)-31 b(us)479 b(making)0 33427 y(p)31 b(ossible)389
b(to)h(set)f(up)g(connection)i(b)31 b(et)-31 b(w)g(een)390
b(di\013eren)-31 b(t)390 b(programs.)553 b(Belo)-31 b(w)391
b(is)e(an)g(example)i(program)f(whic)-31 b(h)390 b(is)f(split)h(in)-31
b(to)0 34645 y(\014les)369 b Fp(server.pi)h Ft(and)g
Fp(client.pi)p Ft(.)7845 36748 y Ff(f)p Fi(-)524 b(server.pi)f(-)p
Ff(g)7845 37966 y Fi(new)h(c)f(:)g(^String)7845 39183
y(val)h(s)f(=)g(\(this_site\))7845 40401 y(agent)h(b)f(=)g(\(\(publish)
g("foo")g(\(dynamic)h([b)f(s)g(c]\)\);)14122 41619 y(c?p=)g(print!p\))0
43722 y Ft(In)425 b(\014le)h Fp(server.pi)p Ft(,)441
b(the)426 b(program)h(creates)e(a)h(new)g(c)-31 b(hannel)427
b(name)f Fp(c)p Ft(,)440 b(assigns)426 b(the)g(curren)-31
b(t)425 b(site)h(name)g(to)h Fp(s)p Ft(,)440 b(creates)0
44939 y(agen)-31 b(t)377 b Fp(b)f Ft(and)g(publishes)g(a)h(record)e
(con)-31 b(taining)379 b Fp(c)p Ft(,)f Fp(s)p Ft(,)g(and)e
Fp(b)g Ft(at)g(the)h(system)f(trader.)513 b(After)376
b(the)g(names)g(are)g(published,)0 46157 y(the)328 b(program)g(w)-31
b(aits)330 b(for)e(a)g(message)g(on)g Fp(c)f Ft(and)h(prin)-31
b(ts)328 b(the)g(message)g(out.)480 b(The)328 b(function)h
Fp(publish)g Ft(tak)-31 b(es)328 b(as)g(argumen)-31 b(ts)0
47375 y(a)346 b(v)-61 b(alue)346 b(to)g(b)31 b(e)345
b(published)g(\(whic)-31 b(h)347 b(m)-31 b(ust)346 b(b)31
b(e)345 b(con)-31 b(v)g(erted)346 b(to)g(a)g(t)-31 b(yp)31
b(e)346 b Fp(Dyn)p Ft(\))g(and)g(a)f(string)h(k)-31 b(eyw)g(ord)347
b(to)f(iden)-31 b(tify)347 b(the)f(v)-61 b(alue.)7845
49478 y Ff(f)p Fi(-)524 b(client.pi)f(-)p Ff(g)7845 50696
y Fi(agent)h(a)f(=)8892 51913 y(typecase)g(\(subscribe)g("foo")g(a\))g
(of)9938 53131 y([ag:Agent)g(si:Site)g(ch:^String])h(->)10984
54349 y(ch!"Hello)f(world!")8892 55566 y(else)g(print!"Type)g
(mismatch)g(for)h(foo")0 57780 y Ft(In)311 b(\014le)g
Fp(client.pi)p Ft(,)324 b(the)312 b(program)g(creates)f(agen)-31
b(t)312 b Fp(a)f Ft(and)g(subscrib)31 b(es)310 b(for)h(the)g(v)-61
b(alue)312 b(published)f(in)h(\014le)f Fp(server.pi)p
Ft(.)475 b(The)0 59109 y(function)337 b Fp(subscribe)f
Ft(tak)-31 b(es)336 b(t)-31 b(w)g(o)337 b(parameters:)477
b(the)335 b(string)h(k)-31 b(eyw)g(ord)336 b Fp("foo")g
Ft(whic)-31 b(h)336 b(w)-31 b(as)336 b(used)f(to)h(publish)g(the)f(v)
-61 b(alue)336 b(at)0 60437 y(the)406 b(trader,)415 b(and)406
b(the)f(name)i(of)f(the)g(curren)-31 b(t)405 b(agen)-31
b(t.)603 b(The)406 b(function)h(blo)31 b(c)-31 b(ks)406
b(un)-31 b(til)407 b(the)f(v)-61 b(alue)406 b(is)f(a)-31
b(v)-61 b(ailable.)605 b(The)405 b(v)-61 b(alue)0 61765
y(returned)411 b(b)-31 b(y)412 b Fp(subscribe)h Ft(is)f(a)g(dynamic)i
(v)-61 b(alue)412 b(whic)-31 b(h)413 b(can)f(b)31 b(e)411
b(matc)-31 b(hed)413 b(against)h(exp)31 b(ected)412 b(t)-31
b(yp)31 b(es)412 b(using)g Fp(typecase)p Ft(.)0 63094
y(If)419 b(the)g(dynamic)h(t)-31 b(yp)31 b(ec)-31 b(hec)g(king)421
b(succeeds)c(then)i(basic)h(v)-61 b(alues)419 b(extracted)g(from)h(the)
f(dynamic)h(v)-61 b(alue)419 b(can)g(b)31 b(e)419 b(used)f(for)0
64422 y(comm)-31 b(unication)335 b(\(e.g.)482 b(in)331
b(the)h(program)g(ab)31 b(o)-31 b(v)g(e)333 b(w)-31 b(e)332
b(send)e(a)i(message)g(on)g Fp(c)f Ft(to)h(agen)-31 b(t)333
b Fp(b)e Ft(whic)-31 b(h)333 b(is)e(supp)31 b(osed)331
b(to)h(b)31 b(e)331 b(at)h Fp(s)p Ft(\).)1660 65640 y(When)312
b(the)h(run)-31 b(time)313 b(system)g(starts)f(up,)324
b(w)-31 b(e)313 b(ha)-31 b(v)g(e)313 b(to)g(sp)31 b(ecify)313
b(|)f(using)h(options)g Fp(-trader)h Ft(and)e Fp(-tport)p
Ft(,)325 b(an)313 b(address)0 66857 y(and)395 b(p)31
b(ort)394 b(n)-31 b(um)g(b)31 b(er)395 b(for)g(the)g(run)-31
b(time)395 b(system)g(selected)g(to)g(b)31 b(e)394 b(a)h(trader.)569
b(By)394 b(default)j(the)d(curren)-31 b(t)394 b(run)-31
b(time)396 b(system)f(is)0 68075 y(c)-31 b(hosen.)493
b(F)-92 b(or)368 b(example,)j(if)f(w)-31 b(e)370 b(compile)h
Fp(server.pi)f Ft(on)f Fp(glia.cl.cam.ac.uk)j Ft(as)d(b)31
b(elo)-31 b(w)8369 70178 y Fi(np)523 b(server.pi)p eop
end
%%Page: 33 34
TeXDict begin 33 33 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(33)0 1107 y(then)328 b(the)g(lo)31
b(cal)329 b(mac)-31 b(hine)330 b Fp(glia)e Ft(will)h(b)31
b(e)328 b(selected)g(to)g(trade)g(names)h(subscrib)31
b(ed)326 b(or)i(published)g(b)-31 b(y)328 b(an)-31 b(y)328
b(lo)31 b(cal)330 b Fp(subscribe)0 2325 y Ft(and)420
b Fp(publish)g Ft(function)h(calls.)645 b(The)420 b(execution)g(of)h
Fp(nc)e Ft(will)i(displa)-31 b(y)421 b(a)f(lo)31 b(cal)421
b(p)31 b(ort)420 b(n)-31 b(um)g(b)31 b(er)419 b(selected)h(b)-31
b(y)420 b(the)g(run)-31 b(time)0 3542 y(system,)362 b(e.g.)490
b Fp(5000)p Ft(.)g(W)-92 b(e)359 b(can)h(then)f(use)g(this)h
(information)i(and)e(execute)g(the)g(clien)-31 b(t)361
b(program)f(on)g(another)g(mac)-31 b(hine)361 b(as)0
4760 y(follo)-31 b(ws)8369 6701 y Fi(np)523 b(client.pi)g(-trader)g
(glia.cl.cam.ac.uk)h(-tport)f(5000)0 8753 y Ft(This)426
b(will)i(select)f(the)f(run)-31 b(time)427 b(system)f(on)g
Fp(glia.cl.cam.ac.uk)p Ft(,)444 b(listening)427 b(on)g(a)f(p)31
b(ort)426 b Fp(5000)p Ft(,)441 b(to)427 b(b)31 b(e)426
b(a)g(trader,)441 b(and)0 10081 y(execute)370 b(the)f
Fp(client)h Ft(program)g(on)f(the)h(lo)31 b(cal)370 b(mac)-31
b(hine.)1660 11409 y(The)452 b(functions)h Fp(publish)g
Ft(and)f Fp(subscribe)h Ft(will)h(almost)f(certainly)g(c)-31
b(hange)453 b(in)f(the)g(future)g(releases)g(of)g(Nomadic)0
12738 y(Pict)389 b(to)f(accommo)31 b(date)391 b(p)31
b(ossible)388 b(ina)-31 b(v)-61 b(ailablit)-31 b(y)392
b(of)c(the)g(trader)f(\(e.g.)550 b(during)388 b(the)g(disconnected)g
(op)31 b(eration)389 b(on)f(laptop)0 14066 y(computers\);)369
b(curren)-31 b(tly)368 b(w)-31 b(e)367 b(assume)h(that)g(there)f(is)g
(connection)i(with)f(the)g(trader)f(when)g(p)31 b(erforming)368
b(these)f(functions.)0 17692 y Fy(5.5)1793 b(Con\014guring)598
b(the)h(System)0 20116 y Ft(The)387 b(names)g(of)g(sites)g(can)g(b)31
b(e)386 b(either)h(obtained)i(from)e(a)g(lo)31 b(cal)388
b(con\014guration)h(\014le)e(or)g(a)g(trader,)k(using)c(di\013eren)-31
b(t)387 b(library)0 21445 y(functions.)494 b(Belo)-31
b(w)370 b(w)-31 b(e)370 b(describ)31 b(e)369 b(b)31 b(oth)369
b(metho)31 b(ds.)0 24508 y Fh(5.5.1)1495 b(Using)500
b(a)e(con\014g)i(\014le)0 26441 y Ft(The)388 b(con\014guration)i
(\014le)e(should)g(con)-31 b(tain)389 b(pairs)f(of)g(DNS)f(names)h
(\(enclosed)h(in)f(double-quotes\))h(and)f(p)31 b(ort)388
b(n)-31 b(um)g(b)31 b(ers)387 b(of)0 27659 y(the)392
b(activ)-31 b(e)393 b(sites)e(that)i(w)-31 b(e)391 b(w)-31
b(an)g(t)394 b(to)e(use)e(in)i(our)f(programs;)404 b(w)-31
b(e)391 b(can)h(use)f Fp(#)g Ft(to)h(commen)-31 b(t)393
b(lines.)560 b(F)-92 b(or)390 b(example,)399 b(a)392
b(v)-61 b(alid)0 28876 y(con\014guration)371 b(\014le)f(ma)-31
b(y)370 b(lo)31 b(ok)371 b(as)e(follo)-31 b(ws)8369 30817
y Fi("glia")2615 b(5002)8369 32035 y("vesicle")1046 b(5001)8369
33253 y(#"britten")523 b(5000)8369 34470 y("iris.cl.cam.ac.uk")g(5003)
8369 35688 y(#"puccini")g(5000)0 37740 y Ft(The)391 b(con\014guration)i
(\014le)e(has)g(a)g(default)h(name)g Fp(config)p Ft(;)403
b(the)391 b(compiler's)h(option)g Fp(-f)f Ft(can)g(b)31
b(e)391 b(used)f(to)h(name)h(other)f(\014le.)0 39068
y(When)460 b(the)h(run)-31 b(time)461 b(system)g(starts)g(up)f(on)h(a)g
(lo)31 b(cal)462 b(mac)-31 b(hine,)485 b(it)462 b(op)31
b(ens)460 b(the)h Fp(config)g Ft(\014le)g(\(or)g(the)g(\014le)f(sp)31
b(eci\014ed)461 b(b)-31 b(y)0 40396 y(option)435 b Fp(-f)p
Ft(\))e(and)g(lo)31 b(oks)434 b(up)f(for)g(the)g(\014rst)f(o)31
b(ccurance)433 b(of)g(the)h(In)-31 b(ternet)433 b(address)f(of)h(the)g
(lo)31 b(cal)435 b(mac)-31 b(hine,)450 b(c)-31 b(ho)31
b(osing)435 b(the)0 41725 y(p)31 b(ort)369 b(name)h(giv)-31
b(en)371 b(next)e(to)h(the)g(address.)1660 43053 y(W)-92
b(e)431 b(can)h(use)g(a)g(library)g(function)h Fp(get)p
18559 43053 349 45 v 419 w(site)582 b(i)p Ft(,)448 b(where)431
b Fo(i)412 b Ft(=)g(0)p Fo(;)184 b Ft(1)p Fo(;)g(:::)p
Ft(,)452 b(to)433 b(return)e(a)h(site)g(name)h(built)g(using)f(the)g
(IP)0 44381 y(address)351 b(and)i(p)31 b(ort)352 b(n)-31
b(um)g(b)31 b(er)352 b(from)h(the)g Fo(i)p Ft(-th)g(v)-61
b(alid)353 b(line)g(of)g(the)f Fp(config)h Ft(\014le)g(\(commen)-31
b(ted)354 b(lines)f(are)f(ignored\).)488 b(Another)0
45710 y(useful)h(library)g(function)h(is)f Fp(this)p
15098 45710 V 419 w(site)p Ft(,)520 b(whic)-31 b(h)490
b(returns)d(the)i(Nomadic)i(Pict)f(name)f(of)h(the)f(curren)-31
b(t)488 b(site)h(\(or)h(more)0 47038 y(precisely)369
b(of)h(the)f(curren)-31 b(t)369 b(instan)-31 b(tiation)373
b(of)d(the)g(run)-31 b(time)370 b(system)f(on)h(the)f(lo)31
b(cal)371 b(mac)-31 b(hine\).)1660 48256 y(In)443 b(order)f(to)i
(execute)g(a)f(distributed)h(program)g(on)f(man)-31 b(y)444
b(mac)-31 b(hines,)463 b(w)-31 b(e)444 b(m)-31 b(ust)443
b(run)g(a)g(run)-31 b(time)444 b(system)f(on)g(eac)-31
b(h)0 49473 y(mac)g(hine.)469 b(The)295 b(execution)i(of)e(a)g(program)
h(spa)-31 b(wns)295 b(a)g(run)-31 b(time)296 b(system)f(on)g(a)g(lo)31
b(cal)297 b(mac)-31 b(hine.)469 b(W)-92 b(e)294 b(can)h(start)h(an)f
(\\empt)-31 b(y")0 50691 y(run)g(time)370 b(system)g(on)f(other)h(mac)
-31 b(hines)370 b(using)f Fp(nc)h Ft(without)h(sp)31
b(ecifying)370 b(a)g(program)g(name)g(as)f(follo)-31
b(ws)8369 52632 y Fi(np)523 b(-f)g(config_file)1660 54573
y Ft(or)369 b(simply)8369 56514 y Fi(np)1660 58566 y
Ft(Using)402 b(the)f Fp(config)h Ft(\014le)f(is)g(go)31
b(o)g(d)402 b(enough)g(for)f(quic)-31 b(k)402 b(protot)-31
b(yping.)591 b(The)401 b(translation)j(enco)31 b(dings)401
b(in)h(the)f(Nomadic)0 59894 y(Pict)449 b(distribution)h(usually)e
(assume)g(this)g(metho)31 b(d)449 b(and)f(use)f(the)h(function)i
Fp(get)p 35095 59894 V 419 w(site)e Ft(to)g(obtain)i(site)e(names)g
(from)h(a)0 61222 y(lo)31 b(cal)340 b(\014le.)483 b(This,)346
b(ho)-31 b(w)g(ev)g(er,)346 b(can)339 b(b)31 b(e)339
b(easily)h(mo)31 b(di\014ed.)483 b(Belo)-31 b(w)341 b(w)-31
b(e)339 b(describ)31 b(e)338 b(using)h(a)g(trader)g(mec)-31
b(hanism)340 b(whic)-31 b(h)340 b(is)f(more)0 62551 y(elegan)-31
b(t.)0 65614 y Fh(5.5.2)1495 b(Using)500 b(a)e(trader)0
67547 y Ft(If)450 b(the)g(run)-31 b(time)451 b(system)f(cannot)h
(\014nd)f(the)g(con\014guration)i(\014le)f(in)f(a)g(lo)31
b(cal)451 b(directory)g(then)f(it)h(will)h(select)e(a)g(free)g(p)31
b(ort)0 68765 y(n)-31 b(um)g(b)31 b(er)358 b(automatically)-92
b(,)365 b(create)359 b(a)f(new)h(fresh)e(name)i(of)f(the)h(site,)i(and)
d(publish)h(it)f(with)i(the)e(\\dotted")i(sym)-31 b(b)31
b(olic)360 b(name)0 69982 y(of)432 b(the)g(lo)31 b(cal)433
b(host)f(mac)-31 b(hine,)449 b(e.g.)681 b Fp(sinapsi.cl.cam.ac.uk)p
Ft(,)451 b(as)431 b(a)h(k)-31 b(eyw)g(ord)433 b(\(to)g(b)31
b(e)431 b(precise)g(this)h(is)g(a)g(string)g(name)0 71200
y(returned)368 b(b)-31 b(y)370 b(a)f(Unix)h(function)h
Fp(gethostname)p Ft(\).)495 b(If)368 b(w)-31 b(e)370
b(t)-31 b(yp)31 b(e)p eop end
%%Page: 34 35
TeXDict begin 34 34 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(34)8369 1107 y Fi(np)0 3210 y Ft(to)415
b(start)f(an)h(`empt)-31 b(y`")416 b(run)-31 b(time)415
b(system)g(then)f(a)g(lo)31 b(cal)416 b(trader)e(will)h(b)31
b(e)414 b(selected)g(b)-31 b(y)415 b(default)g(\(and)g(a)f(p)31
b(ort)414 b(n)-31 b(um)g(b)31 b(er)414 b(of)0 4428 y(the)369
b(run)-31 b(time)371 b(prin)-31 b(ted)369 b(out\).)494
b(W)-92 b(e)369 b(can)g(c)-31 b(ho)31 b(ose)370 b(another)g(trader)f
(using)g(the)h(options)g Fp(-trader)g Ft(and)g Fp(tport)p
Ft(,)g(e.g.)8369 6531 y Fi(np)523 b(-trader)g()g(-tport)h
()0 8634 y Ft(Then,)329 b(an)-31 b(y)319
b(programs)f(executed)h(on)f(other)g(mac)-31 b(hines)319
b(can)g(use)e(a)h(function)i Fp(subscribe)p 37891 8634
349 45 v 419 w(site)f Ft(to)g(obtain)g(the)g(site)f(name)0
9852 y(from)370 b(the)f(trader,)h(sp)31 b(ecifying)370
b(a)f(full)i(\\dotted")g(sym)-31 b(b)31 b(olic)371 b(name)f(of)f(the)h
(host)f(whic)-31 b(h)370 b(runs)f(the)g(site.)493 b(This)370
b(b)31 b(elo)-31 b(w)8369 11955 y Fi(agent)523 b(top)g(=)8369
13173 y(\()9415 14390 y(val)g(s)g(=)g(\(subscribe_site)g
()h(top)9415 15608 y(...)8369 16826 y(\))0
19040 y Ft(returns)335 b(the)g(name)i Fp(s)e Ft(of)h(t)-31
b(yp)31 b(e)336 b Fp(Site)g Ft(of)g(the)g(run)-31 b(time)337
b(system)f(running)f(on)h Fp(sinapsi.cl.cam.ac.uk)j Ft(and)d(can)f(b)31
b(e)335 b(used)0 20368 y(later)394 b(in)f(the)g(program)h(\(eac)-31
b(h)394 b(execution)g(of)g Fp(subscribe)p 24816 20368
V 419 w(site)g Ft(ma)-31 b(y)394 b(in)-31 b(v)g(olv)g(e)395
b(net)-31 b(w)g(ork)395 b(comm)-31 b(unication,)403 b(so)393
b(it)g(should)0 21696 y(b)31 b(e)291 b(executed)i(only)g(once)f(for)g
(eac)-31 b(h)292 b(site,)308 b(e.g.)468 b(in)292 b(the)g(b)31
b(eginning)294 b(of)e(the)g(program\).)468 b(Note)293
b(that)g(this)g(mec)-31 b(hanism)293 b(assumes)0 23025
y(only)385 b(one)g(run)-31 b(time)385 b(system)g(p)31
b(er)384 b(mac)-31 b(hine)385 b(|)f(this)h(ho)-31 b(w)g(ev)g(er)386
b(can)f(b)31 b(e)383 b(c)-31 b(hanged)386 b(b)-31 b(y)384
b(mo)31 b(difying)387 b(the)e(b)31 b(o)g(otstrapping)386
b(\014le,)0 24353 y(describ)31 b(ed)368 b(b)31 b(elo)-31
b(w.)1660 25571 y(The)476 b(user-de\014ned)d(programs)j(m)-31
b(ust)475 b(b)31 b(e)475 b(compiled)h(with)h(options)f
Fp(-trader)g Ft(and)f Fp(-tport)p Ft(,)503 b(so)474 b(that)j(the)e(run)
-31 b(time)0 26788 y(system)369 b(will)i(kno)-31 b(w)371
b(whic)-31 b(h)370 b(trader)f(should)g(b)31 b(e)369 b(con)-31
b(tacted,)372 b(e.g.)8369 28892 y Fi(np)523 b(prog.pi)g(-trader)g
()h(-tport)f()0 31990 y Fh(5.5.3)1495
b(Bo)42 b(otstrapping)501 b(the)e(system)0 33923 y Ft(Actually)-92
b(,)545 b(if)509 b(w)-31 b(e)508 b(do)h(not)f(sp)31 b(ecify)509
b(an)-31 b(y)508 b(program)h(name,)544 b(the)508 b(directiv)-31
b(e)510 b Fp(nc)e Ft(will)i(execute)e(a)h(default)g(b)31
b(o)g(otstrapping)0 35141 y(program)325 b(de\014ned)f(in)h(a)f(system)h
(\014le)f Fp(bootstrap.pi)i Ft(\(to)g(\014nd)e(the)g(\014le)h(\014rst)f
(the)g(curren)-31 b(t)324 b(directory)h(will)h(b)31 b(e)324
b(searc)-31 b(h)324 b(then)0 36358 y(a)369 b(cen)-31
b(tral)371 b(directory)e(of)h(Nomadic)h(Pict)f(libraries\))8369
38461 y Fi(\(publish_this_site)523 b(\(sys.gethostname\)\);)h(\(pr)f
("Ready..."\);)8369 40897 y(new)g(foo)g(:)g(^[])8369
42114 y(agent)g(a)g(=)9415 43332 y(foo?*_)g(=)g(\(\))0
45546 y Ft(The)431 b(program)h(publishes)g(the)f(site)h(name)g(of)f
(the)h(lo)31 b(cal)433 b(host)e(iden)-31 b(ti\014ed)433
b(b)-31 b(y)431 b(the)h(In)-31 b(ternet)431 b(address)g(of)g(the)h(lo)
31 b(cal)432 b(host)0 46874 y(mac)-31 b(hine)334 b(and)f(executes)g(an)
g(empt)-31 b(y)334 b(lo)31 b(op.)481 b(Additional)336
b(b)31 b(eha)-31 b(viour)333 b(can)g(b)31 b(e)333 b(added)g(if)g
(required)f(b)-31 b(y)333 b(mo)31 b(difying)335 b(this)e(\014le.)p
eop end
%%Page: 35 36
TeXDict begin 35 35 bop 0 9409 a Fj(Chapter)861 b(6)0
14944 y FA(Syn)-86 b(tax)0 20848 y Ft(This)333 b(c)-31
b(hapter)333 b(describ)31 b(es)331 b(the)h(syn)-31 b(tax)334
b(of)e(Nomadic)j(Pict)e(programs)g(\(for)g(description)g(of)g(lexical)h
(rules)e(and)g(Pict)i(syn)-31 b(tax)0 22177 y(w)g(e)370
b(use)e(extracts)i(from)g([PT97b)r(],)g(b)-31 b(y)370
b(courtesy)f(of)h(Benjamin)g(C.)g(Pierce\).)0 25837 y
Fy(6.1)1793 b(Lexical)599 b(Rules)0 28262 y Ft(Whitespace)311
b(c)-31 b(haracters)310 b(are)g(space,)323 b(newline,)g(tab,)h(and)310
b(formfeed)h(\(con)-31 b(trol-L\).)313 b(Commen)-31 b(ts)312
b(are)e(brac)-31 b(k)g(eted)312 b(b)-31 b(y)310 b Fp({-)h
Ft(and)0 29590 y Fp(-})369 b Ft(and)h(ma)-31 b(y)370
b(b)31 b(e)369 b(nested.)492 b(A)370 b(commen)-31 b(t)371
b(is)e(equiv)-61 b(alen)-31 b(t)371 b(to)f(whitespace.)1660
30918 y(In)-31 b(tegers)353 b(are)g(sequences)f(of)i(digits)g
(\(negativ)-31 b(e)356 b(in)-31 b(tegers)353 b(start)h(with)g(a)f
Fp(-)g Ft(c)-31 b(haracter\).)488 b(Strings)354 b(can)f(b)31
b(e)353 b(an)-31 b(y)353 b(sequence)0 32247 y(of)398
b(c)-31 b(haracters)399 b(and)f(escap)31 b(e)397 b(sequences)h
(enclosed)g(in)g(double-quotes.)581 b(Sites)398 b(can)g(b)31
b(e)398 b(an)-31 b(y)398 b(sequence)g(of)g(c)-31 b(haracters)399
b(and)0 33575 y(escap)31 b(e)341 b(sequences)f(enclosed)i(in)f(double)h
(single-quote)h(c)-31 b(haracters)342 b(\()p Fp('')p
Ft(\),)348 b(used)341 b(to)h(denote)g(the)f(IP)g(address,)346
b(follo)-31 b(w)g(ed)345 b(b)-31 b(y)0 34904 y(a)351
b(colon)g(and)g(in)-31 b(teger,)355 b(to)c(denote)g(a)g(p)31
b(ort)350 b(n)-31 b(um)g(b)31 b(er.)487 b(The)350 b(escap)31
b(e)350 b(sequences)g Fp(\\")p Ft(,)k Fp(\\n)q Ft(,)g(and)d
Fp(\\\\)f Ft(stand)h(for)f(the)h(c)-31 b(haracters)0
36232 y(double-quote,)372 b(newline,)g(and)e(bac)-31
b(kslash.)495 b(The)370 b(escap)31 b(e)370 b(sequence)f
Fp(\\ddd)h Ft(\(where)g Fp(d)g Ft(denotes)g(a)g(decimal)h(digit\))h
(denotes)0 37560 y(the)404 b(c)-31 b(haracter)404 b(with)h(co)31
b(de)404 b Fp(ddd)g Ft(\(co)31 b(des)404 b(outside)g(the)g(range)g
Fp(0..255)h Ft(are)e(illegal\).)600 b(Character)404 b(constan)-31
b(ts)405 b(consist)f(of)h(a)0 38889 y(single)370 b(quote)g(c)-31
b(haracter)370 b(\()p Fp(')q Ft(\),)g(a)f(c)-31 b(haracter)370
b(or)f(escap)31 b(e)369 b(sequence,)g(and)g(another)h(single)g(quote.)
1660 40217 y(Alphan)-31 b(umeric)371 b(iden)-31 b(ti\014ers)370
b(b)31 b(egin)370 b(with)g(a)g(sym)-31 b(b)31 b(ol)370
b(from)g(the)f(follo)-31 b(wing)373 b(set:)2737 42320
y Fi(a)523 b(b)g(c)g(d)g(e)g(f)g(g)g(h)g(i)h(j)f(k)g(l)g(m)g(n)g(o)g(p)
g(q)g(r)g(s)g(t)g(u)g(v)g(w)g(x)h(y)f(z)2737 43538 y(A)g(B)g(C)g(D)g(E)
g(F)g(G)g(H)g(I)h(J)f(K)g(L)g(M)g(N)g(O)g(P)g(Q)g(R)g(S)g(T)g(U)g(V)g
(W)g(X)h(Y)f(Z)0 45752 y Ft(Subsequen)-31 b(t)369 b(sym)-31
b(b)31 b(ols)370 b(ma)-31 b(y)371 b(con)-31 b(tain)371
b(the)e(follo)-31 b(wing)373 b(c)-31 b(haracters)370
b(in)f(addition)i(to)f(those)g(men)-31 b(tioned)371 b(ab)31
b(o)-31 b(v)g(e:)2737 47855 y Fi(0)523 b(1)g(2)g(3)g(4)g(5)g(6)g(7)g(8)
h(9)f(')0 50069 y Ft(Sym)-31 b(b)31 b(olic)371 b(iden)-31
b(ti\014ers)370 b(are)f(non-empt)-31 b(y)371 b(sequences)d(of)i(sym)-31
b(b)31 b(ols)370 b(dra)-31 b(wn)369 b(from)h(the)g(follo)-31
b(wing)372 b(set:)2737 52172 y Fi(~)523 b(*)g(\045)g(\\)g(+)g(-)g(<)g
(>)g(=)h(&)f(|)g(@)g($)g(,)g(`)0 55833 y Fy(6.2)1793
b(Reserv)-50 b(ed)599 b(W)-149 b(ords)0 58257 y Ft(The)369
b(follo)-31 b(wing)373 b(sym)-31 b(b)31 b(ols)370 b(are)f(reserv)-31
b(ed)368 b(w)-31 b(ords:)664 61733 y Fp(Agent)3073 b(agent)2491
b(and)3072 b(Bool)2492 b(ccode)3072 b(Char)4235 b(def)3653
b(dynamic)1330 b(else)1910 b(false)664 63062 y(if)4816
b(iflocal)1329 b(import)g(inline)h(Int)4234 b(in)5397
b(migrate)1329 b(new)3654 b(now)2491 b(of)664 64390 y(program)1911
b(rec)3653 b(run)3072 b(Site)2492 b(String)f(terminate)1330
b(then)3072 b(timeout)1330 b(to)3072 b(Top)664 65718
y(toplevel)1330 b(true)3072 b(Type)2491 b(type)h(typecase)1329
b(val)4816 b(switch)1910 b(wait)3073 b(where)1329 b(with)664
67047 y(@)5397 b(^)4815 b(\\)4234 b(/)h(.)5396 b(;)5978
b(:)4815 b(=)h(|)3653 b(!)664 68375 y(#)5397 b(?)4815
b(?*)3653 b(_)4235 b(<)5396 b(>)5978 b(->)4234 b({)4816
b(\()3653 b([)664 69703 y(})5397 b(\))4815 b(])25447
74521 y Ft(35)p eop end
%%Page: 36 37
TeXDict begin 36 36 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(36)0 1107 y Fy(6.3)1793 b(Concrete)599
b(Syn)-50 b(tax)0 3532 y Ft(F)-92 b(or)441 b(eac)-31
b(h)443 b(syn)-31 b(tactic)444 b(form,)462 b(w)-31 b(e)442
b(note)h(whether)g(it)g(is)f(part)h(of)f(the)h(core)f(language)i(\()p
Fq(C)p Ft(\),)g(the)e(language)j(for)d(expressing)0 4860
y(enco)31 b(dings)399 b(\()p Fq(T)p Ft(\),)g(a)g(deriv)-31
b(ed)398 b(form)h(\()p Fq(D)p Ft(\),)g(an)f(optional)j(t)-31
b(yp)31 b(e)399 b(annotation)i(that)e(is)g(\014lled)f(in)h(during)f(t)
-31 b(yp)31 b(e)399 b(reconstruction)0 6188 y(if)392
b(omitted)h(b)-31 b(y)392 b(the)g(programmer)g(\()p Fq(R)p
Ft(\),)h(or)e(an)h(extra-linguistic)i(feature)e(\()p
Fq(E)p Ft(\).)h(Syn)-31 b(tactic)393 b(forms)f(c)-31
b(haracteristic)393 b(for)f(the)0 7517 y(Nomadic)371
b(Pict)f(language)i(are)d(mark)-31 b(ed)370 b(b)-31 b(y)369
b Fq(n)p Ft(.)0 10615 y Fh(6.3.1)1495 b(Compilation)501
b(units)0 12629 y Fq(T)-85 b(opL)-57 b(evel)1842 b Ft(=)1329
b Fq(Imp)-57 b(ort)395 b Fo(:)184 b(:)g(:)399 b Fq(Imp)-57
b(ort)395 b(De)-57 b(c)397 b Fo(:)184 b(:)g(:)398 b Fq(De)-57
b(c)11760 b(E)1377 b Ft(Compilation)373 b(unit)8318 13957
y Fq(Imp)-57 b(ort)395 b Fo(:)184 b(:)g(:)399 b Fq(Imp)-57
b(ort)395 b(T)-85 b(opDe)-57 b(c)397 b Fo(:)184 b(:)g(:)398
b Fq(T)-85 b(opDe)-57 b(c)8082 b(En)755 b Ft(Compilation)373
b(unit)0 15286 y Fq(Imp)-57 b(ort)2886 b Ft(=)1329 b
Fp(import)397 b Fq(String)19590 b(E)1377 b Ft(Imp)31
b(ort)370 b(statemen)-31 b(t)0 18266 y Fh(6.3.2)1495
b(T)-125 b(op-lev)-42 b(el)500 b(declarations)0 20280
y Fq(T)-85 b(opDe)-57 b(c)2492 b Ft(=)1329 b Fq(De)-57
b(c)26731 b Ft(Declaration)8318 21608 y Fp({)977 b Fq(A)-57
b(gent)978 b Fp(})396 b(=)g Fq(T)-85 b(yp)-57 b(e)16874
b(Tn)714 b Ft(Agen)-31 b(t)371 b(t)-31 b(yp)31 b(e)8318
22937 y Fp({)977 b Fq(Site)h Fp(})396 b(=)g Fq(T)-85
b(yp)-57 b(e)17810 b(Tn)714 b Ft(Site)370 b(t)-31 b(yp)31
b(e)8318 24265 y Fp(program)397 b Fq(Id)e Fp(:)i Fq(T)-85
b(yp)-57 b(e)397 b Fp(=)f Fq(Pr)-57 b(o)g(c)13755 b(Tn)714
b Ft(Program)371 b(declaration)8318 25594 y Fp({)396
b(toplevel)h Fq(Id)f(Id)f Fp(})i Fq(T)-85 b(yp)-57 b(e)397
b Fp(=)f Fq(Pr)-57 b(o)g(c)10808 b(Tn)714 b Ft(T)-92
b(oplev)-31 b(el)371 b(declaration)8318 26922 y Fp({)396
b(def)g Fq(Id)g Fp(})g Fq(Id)g(A)-28 b(bs)17772 b(Tn)714
b Ft(Pro)31 b(cess)369 b(abstraction)8318 28250 y Fp({)581
b(agent)397 b Fq(Id)e Fp(=)i Fq(Id)e Fp(in)i Fq(Id)e
Fp(})h Fq(Id)g Fp(=)g Fq(Pr)-57 b(o)g(c)9713 b(Tn)714
b Ft(Agen)-31 b(t)371 b(creation)8318 29579 y Fp({)581
b(migrate)h(to)397 b Fq(Id)e(Id)h Fp(})g Fq(Id)g Fp(=)g
Fq(Pr)-57 b(o)g(c)10731 b(Tn)714 b Ft(Agen)-31 b(t)371
b(migration)8318 30907 y Fp({)396 b Fq(Id)g Fp(?*)g Fq(Id)f
Fp(=)i Fq(Id)e Fp(})h Fq(Id)g Fp(=)g Fq(Pr)-57 b(o)g(c)13200
b(Tn)714 b Ft(Replicated)371 b(input)8318 32235 y Fp({)581
b(<)396 b Fq(Id)g Fp(@)g Fq(Id)g Fp(>)g Fq(Id)f Fp(!)i
Fq(Id)e Fp(})h Fq(Id)g Fp(=)g Fq(Pr)-57 b(o)g(c)10253
b(Tn)714 b Ft(Output)370 b(to)g(agen)-31 b(t)371 b(on)e(site)8318
33564 y Fp({)581 b(<)396 b Fq(Id)g Fp(>)g Fq(Id)g Fp(!)g
Fq(Id)f Fp(})i Fq(Id)e Fp(=)h Fq(Pr)-57 b(o)g(c)12619
b(Tn)714 b Ft(Output)370 b(to)g(adjacen)-31 b(t)371 b(agen)-31
b(t)8318 34892 y Fp({)581 b(iflocal)h(<)392 b Fq(Id)g
Fp(>)g Fq(Id)g Fp(!)g Fq(Id)g Fp(then)g Fq(Pr)-57 b(o)g(c)393
b Fp(else)f Fq(Pr)-57 b(o)g(c)393 b Fp(})f Fq(Id)g Fp(=)8318
36220 y Fq(Pr)-57 b(o)g(c)34718 34892 y(Tn)714 b Ft(T)-92
b(est-and-send)369 b(to)h(agen)-31 b(t)8318 37549 y Fp({)977
b Fq(Id)396 b Fp(@)g Fq(Id)f Fp(!)i Fq(Id)e Fp(})h Fq(Id)g
Fp(=)g Fq(Pr)-57 b(o)g(c)13200 b(Tn)714 b Ft(Lo)31 b(cation-indep)g
(enden)-31 b(t)372 b(output)8318 38877 y Fp({)396 b Fq(do)g(String)g
(Id)g Fp(in)g Fq(Id)g Fp(})g Fq(Id)g Fp(=)g Fq(Pr)-57
b(o)g(c)10714 b(Tn)714 b Ft(Macro)369 b(de\014nition)0
41858 y Fh(6.3.3)1495 b(Declarations)0 43613 y Fq(De)-57
b(c)4331 b Ft(=)1329 b Fp(new)396 b Fq(Id)g Fp(:)g Fq(T)-85
b(yp)-57 b(e)19633 b(C)1336 b Ft(Channel)370 b(creation)8318
44941 y Fp(val)396 b Fq(Pat)g Fp(=)g Fq(V)-85 b(al)19616
b(D)1292 b Ft(V)-92 b(alue)370 b(binding)8318 46270 y
Fp(run)396 b Fq(Pr)-57 b(o)g(c)22082 b(D)1292 b Ft(P)-31
b(arallel)372 b(pro)31 b(cess)8318 47598 y Fq(V)-85 b(al)395
b Fp(;)23837 b Fq(D)1292 b Ft(Sequen)-31 b(tial)371 b(execution)8318
48927 y Fp(inline)397 b(def)f Fq(Id)g(A)-28 b(bs)17232
b(D)1292 b Ft(Inlinable)371 b(de\014nition)8318 50255
y Fp(def)396 b Fq(Id)11450 50421 y Fn(1)12342 50255 y
Fq(A)-28 b(bs)14099 50421 y Fn(1)14991 50255 y Fp(and)582
b(...)g(and)396 b Fq(Id)22773 50421 y Fg(n)23771 50255
y Fq(A)-28 b(bs)25528 50421 y Fg(n)34718 50255 y Fq(C)1336
b Ft(Recursiv)-31 b(e)369 b(de\014nition)i(\()p Fo(n)308
b Fr(\025)g Ft(1\))8318 51583 y Fp(type)396 b Fq(Id)g
Fp(=)g Fq(T)-85 b(yp)-57 b(e)19052 b(D)1292 b Ft(T)-31
b(yp)31 b(e)370 b(abbreviation)8318 52912 y Fp(type)396
b(\()h Fq(Id)e(Kinde)-57 b(dId)17793 53078 y Fn(1)18475
52912 y Fo(:)184 b(:)g(:)398 b Fq(Kinde)-57 b(dId)24551
53078 y Fg(n)25551 52912 y Fp(\))396 b(=)g Fq(T)-85 b(yp)-57
b(e)4951 b(D)1292 b Ft(T)-31 b(yp)31 b(e)370 b(op)31
b(erator)370 b(abbrev)396 b(\()p Fo(n)308 b Fr(\025)g
Ft(1\))8318 54240 y Fp(now)396 b(\()g Fq(Id)g(Flag)g
Fo(:)184 b(:)g(:)398 b Fq(Flag)d Fp(\))14674 b Fq(E)1377
b Ft(Compiler)371 b(directiv)-31 b(e)8318 55568 y Fp(agent)397
b Fq(Id)12613 55734 y Fn(1)13505 55568 y Fp(=)f Fq(Pr)-57
b(o)g(c)16661 55734 y Fn(1)17554 55568 y Fp(and)582 b(...)f(and)397
b Fq(Id)25336 55734 y Fg(n)26334 55568 y Fp(=)f Fq(Pr)-57
b(o)g(c)29490 55734 y Fg(n)34718 55568 y Fq(Cn)714 b
Ft(Agen)-31 b(t)371 b(creation)f(\()p Fo(n)308 b Fr(\025)g
Ft(1\))8318 56897 y Fp(agent)397 b Fq(Id)12613 57063
y Fn(1)13505 56897 y Fp(=)f Fq(Pr)-57 b(o)g(c)16661 57063
y Fn(1)17554 56897 y Fp(and)582 b(...)f(and)397 b Fq(Id)25336
57063 y Fg(n)26334 56897 y Fp(=)f Fq(Pr)-57 b(o)g(c)29490
57063 y Fg(n)30489 56897 y Fp(in)3067 b Fq(Cn)714 b Ft(Agen)-31
b(t)371 b(creation)f(\()p Fo(n)308 b Fr(\025)g Ft(1\))8318
58225 y Fp(migrate)582 b(to)396 b Fq(V)-85 b(al)18606
b(Cn)714 b Ft(Migrate)370 b(to)g(site)8318 59553 y Fp(do)396
b Fq(String)h(V)-85 b(al)19931 b(Tn)714 b Ft(Macro)369
b(inlining)8318 60882 y Fp(do)396 b Fq(String)h(V)-85
b(al)396 b Fp(in)18373 b Fq(Tn)714 b Ft(Macro)369 b(inlining)8318
62210 y Fp({)396 b Fq(Id)g Fp(})g Fq(V)-85 b(al)21470
b(Tn)714 b Ft(Declaration)371 b(inlining)0 64756 y Fq(Flag)4047
b Ft(=)1329 b Fq(Id)25407 b(E)1377 b Ft(Ordinary)369
b(\015ag)8318 66084 y Fq(Int)24983 b(E)1377 b Ft(Numeric)370
b(\015ag)8318 67413 y Fq(String)23473 b(E)1377 b Ft(String)370
b(\015ag)p eop end
%%Page: 37 38
TeXDict begin 37 37 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(37)0 1107 y Fh(6.3.4)1495 b(Abstractions)0
2862 y Fq(A)-28 b(bs)4371 b Ft(=)1329 b Fq(Pat)395 b
Fp(=)h Fq(Pr)-57 b(o)g(c)21164 b(C)1336 b Ft(Pro)31 b(cess)369
b(abstraction)8318 4191 y Fp(\()396 b Fq(L)-57 b(ab)g(el)397
b(FieldPat)f Fo(:)184 b(:)g(:)398 b Fq(L)-57 b(ab)g(el)397
b(FieldPat)f Fp(\))g Fq(R)-85 b(T)g(yp)-57 b(e)398 b
Fp(=)e Fq(V)-85 b(al)2123 b(D)1292 b Ft(V)-92 b(alue)370
b(abstraction)0 7160 y Fh(6.3.5)1495 b(P)-42 b(atterns)0
8916 y Fq(Pat)4443 b Ft(=)1329 b Fq(Id)395 b(R)-85 b(T)g(yp)-57
b(e)22028 b(C)1336 b Ft(V)-92 b(ariable)371 b(pattern)8318
10244 y Fp([)396 b Fq(L)-57 b(ab)g(el)397 b(FieldPat)f
Fo(:)184 b(:)g(:)398 b Fq(L)-57 b(ab)g(el)397 b(FieldPat)f
Fp(])8465 b Fq(C)1336 b Ft(Record)369 b(pattern)8318
11572 y Fp(\()396 b(rec)g Fq(R)-85 b(T)g(yp)-57 b(e)398
b(Pat)e Fp(\))17240 b Fq(C)1336 b Ft(Rect)-31 b(yp)31
b(e)370 b(pattern)8318 12901 y Fp(_)396 b Fq(R)-85 b(T)g(yp)-57
b(e)22439 b(C)1336 b Ft(Wildcard)370 b(pattern)8318 14229
y Fq(Id)395 b(R)-85 b(T)g(yp)-57 b(e)398 b Fp(@)e Fq(Pat)18968
b(C)1336 b Ft(La)-31 b(y)g(ered)370 b(pattern)8318 15558
y Fp(!)396 b Fq(Id)24430 b(T)1336 b Ft(Reference)369
b(pattern)0 18104 y Fq(FieldPat)2023 b Ft(=)1329 b Fq(Pat)24715
b(C)1336 b Ft(V)-92 b(alue)370 b(\014eld)8318 19432 y
Fp(#)396 b Fq(Id)g(Constr)20766 b(C)1336 b Ft(T)-31 b(yp)31
b(e)370 b(\014eld)0 22413 y Fh(6.3.6)1495 b(T)-42 b(yp)42
b(e)498 b(constrain)-42 b(ts)0 24426 y Fq(Constr)2860
b Ft(=)1329 b Fr(h)p Fq(empty)98 b Fr(i)22557 b Fq(D)1292
b Ft(No)370 b(constrain)-31 b(t)8318 25755 y Fp(<)396
b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336 b Ft(Subt)-31
b(yp)31 b(e)370 b(constrain)-31 b(t)8318 27083 y Fp(=)396
b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336 b Ft(Equalit)-31
b(y)372 b(constrain)-31 b(t)0 30053 y Fh(6.3.7)1495 b(Pro)42
b(cesses)0 31808 y Fq(Pr)-57 b(o)g(c)3949 b Ft(=)1329
b Fq(V)-85 b(al)395 b Fp(!)i Fq(V)-85 b(al)21853 b(C)1336
b Ft(Output)370 b(atom)8318 33136 y Fq(V)-85 b(al)395
b Fp(?)i Fq(A)-28 b(bs)21683 b(C)1336 b Ft(Input)369
b(pre\014x)8318 34465 y Fq(V)-85 b(al)395 b Fp(?*)i Fq(A)-28
b(bs)21102 b(Cn)714 b Ft(Replicated)371 b(input)8318
35793 y Fp(wait)396 b Fq(V)-85 b(al)396 b Fp(?)g Fq(A)-28
b(bs)396 b Fp(timeout)h Fq(V)-85 b(al)395 b Fp(->)i Fq(Pr)-57
b(o)g(c)8383 b(Cn)714 b Ft(Timed)371 b(input)8318 37121
y Fp(<)396 b Fq(V)-85 b(al)396 b Fp(@)g Fq(V)-85 b(al)395
b Fp(>)i Fq(V)-85 b(al)395 b Fp(!)i Fq(V)-85 b(al)14956
b(Dn)670 b Ft(Output)370 b(to)g(agen)-31 b(t)371 b(on)e(site)8318
38450 y Fp(<)396 b Fq(V)-85 b(al)396 b Fp(>)g Fq(V)-85
b(al)395 b Fp(!)i Fq(V)-85 b(al)17916 b(Dn)670 b Ft(Output)370
b(to)g(adjacen)-31 b(t)371 b(agen)-31 b(t)8318 39778
y Fp(iflocal)397 b(<)f Fq(V)-85 b(al)396 b Fp(>)g Fq(V)-85
b(al)396 b Fp(!)g Fq(V)-85 b(al)395 b Fp(then)i Fq(Pr)-57
b(o)g(c)397 b Fp(else)f Fq(Pr)-57 b(o)g(c)2861 b(Cn)714
b Ft(T)-92 b(est-and-send)369 b(to)h(agen)-31 b(t)8318
41106 y Fq(V)-85 b(al)395 b Fp(@)i Fq(V)-85 b(al)395
b Fp(!)h Fq(V)-85 b(al)18894 b(Dn)670 b Ft(Lo)31 b(cation-indep)g
(endend)371 b(output)8318 42435 y Fp(\()581 b(\))24657
b Fq(C)1336 b Ft(Null)370 b(pro)31 b(cess)8318 43763
y Fp(\()396 b Fq(Pr)-57 b(o)g(c)11474 43929 y Fn(1)12367
43763 y Fp(|)581 b(...)h(|)396 b Fq(Pr)-57 b(o)g(c)19010
43929 y Fg(n)20009 43763 y Fp(\))14128 b Fq(C)1336 b
Ft(P)-31 b(arallel)372 b(comp)31 b(osition)398 b(\()p
Fo(n)309 b Fr(\025)e Ft(2\))8318 45092 y Fp(\()396 b
Fq(De)-57 b(c)11092 45258 y Fn(1)11774 45092 y Fo(:)184
b(:)g(:)398 b Fq(De)-57 b(c)15258 45258 y Fg(n)16257
45092 y Fq(Pr)g(o)g(c)397 b Fp(\))15304 b Fq(C)1336 b
Ft(Lo)31 b(cal)370 b(declarations)398 b(\()p Fo(n)309
b Fr(\025)e Ft(1\))8318 46420 y Fp(if)396 b Fq(V)-85
b(al)510 b Fp(then)397 b Fq(Pr)-57 b(o)g(c)396 b Fp(else)h
Fq(Pr)-57 b(o)g(c)12549 b(C)1336 b Ft(Conditional)8318
47748 y Fp(terminate)21171 b Fq(C)1336 b Ft(Agen)-31
b(t)371 b(termination)8318 49077 y Fp(typecase)428 b
Fq(V)-85 b(al)427 b Fp(of)h Fq(Pat)18683 49243 y Fn(1)19606
49077 y Fp(->)g Fq(Pr)-57 b(o)g(c)23375 49243 y Fn(1)24880
49077 y Fp(...)1009 b Fq(Pat)29317 49243 y Fg(n)30346
49077 y Fp(->)428 b Fq(Pr)-57 b(o)g(c)34115 49243 y Fg(n)8318
50405 y Fp(else)396 b Fq(Pr)-57 b(o)g(c)13217 50571 y
Fg(n)p Fn(+1)34718 49077 y Fq(Dn)670 b Ft(T)-31 b(yp)31
b(e)370 b(matc)-31 b(hing)371 b(\()p Fo(n)309 b Fr(\025)e
Ft(1\))8318 51733 y Fp(switch)365 b Fq(R)-85 b(T)g(yp)-57
b(e)366 b(V)-85 b(al)364 b Fp(of)g(\()h Fq(Id)20935 51899
y Fn(1)21795 51733 y Fp(>)f Fq(Pat)24425 51899 y Fn(1)25286
51733 y Fp(->)g Fq(Pr)-57 b(o)g(c)28991 51899 y Fn(1)30434
51733 y Fp(...)946 b Fq(Id)34116 51899 y Fg(n)8318 53062
y Fp(>)396 b Fq(Pat)10980 53228 y Fg(n)11978 53062 y
Fp(->)g Fq(Pr)-57 b(o)g(c)15715 53228 y Fg(n)16714 53062
y Fp(\))34718 51733 y Fq(Dn)670 b Ft(V)-92 b(arian)-31
b(t)371 b(matc)-31 b(hing)371 b(\()p Fo(n)309 b Fr(\025)e
Ft(1\))8318 54390 y Fp({)396 b Fq(Id)g Fp(})g Fq(V)-85
b(al)21470 b(Tn)714 b Ft(Pro)31 b(cess)369 b(inlining)p
eop end
%%Page: 38 39
TeXDict begin 38 38 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(38)0 1107 y Fh(6.3.8)1495 b(V)-125
b(alues)0 2862 y Fq(V)-85 b(al)4541 b Ft(=)1329 b Fq(Const)23599
b(C)1336 b Ft(Constan)-31 b(t)8318 4191 y Fq(Path)24149
b(C)1336 b Ft(P)-31 b(ath)8318 5519 y Fp(\\)396 b Fq(A)-28
b(bs)23666 b(D)1292 b Ft(Pro)31 b(cess)369 b(abstraction)8318
6847 y Fp([)396 b Fq(L)-57 b(ab)g(el)397 b(FieldV)-85
b(al)396 b Fo(:)184 b(:)g(:)398 b Fq(L)-57 b(ab)g(el)397
b(FieldV)-85 b(al)396 b Fp(])8661 b Fq(C)1336 b Ft(Record)8318
8176 y Fp(if)396 b Fq(R)-85 b(T)g(yp)-57 b(e)398 b(V)-85
b(al)510 b Fp(then)397 b Fq(V)-85 b(al)510 b Fp(else)396
b Fq(V)-85 b(al)10238 b(D)1292 b Ft(Conditional)8318
9504 y Fp(\()396 b Fq(V)-85 b(al)510 b(R)-85 b(T)g(yp)-57
b(e)398 b Fp(with)e Fq(L)-57 b(ab)g(el)398 b(FieldV)-85
b(al)395 b Fo(:)184 b(:)g(:)399 b Fq(L)-57 b(ab)g(el)397
b(FieldV)-85 b(al)396 b Fp(\))461 b Fq(D)1292 b Ft(Field)370
b(extension)8318 10833 y Fp(\()383 b Fq(V)-85 b(al)496
b(R)-85 b(T)g(yp)-57 b(e)385 b Fp(where)e Fq(L)-57 b(ab)g(el)384
b(FieldV)-85 b(al)382 b Fo(:)184 b(:)g(:)385 b Fq(L)-57
b(ab)g(el)384 b(FieldV)-85 b(al)383 b Fp(\))p Fq(D)1292
b Ft(Field)370 b(o)-31 b(v)g(erride)8318 12161 y Fp(\()396
b Fq(R)-85 b(T)g(yp)-57 b(e)398 b(V)-85 b(al)395 b(L)-57
b(ab)g(el)398 b(FieldV)-85 b(al)395 b Fo(:)184 b(:)g(:)399
b Fq(L)-57 b(ab)g(el)397 b(FieldV)-85 b(al)396 b Fp(\))3296
b Fq(D)1292 b Ft(Application)8318 13489 y Fp(\()396 b
Fq(V)-85 b(al)396 b Fp(>)g Fq(V)-85 b(al)13842 13655
y Fn(1)14523 13489 y Fo(:)184 b(:)g(:)398 b Fq(V)-85
b(al)17797 13655 y Fg(n)18795 13489 y Fp(\))15342 b Fq(D)1292
b Ft(Righ)-31 b(t-asso)31 b(c)371 b(application)399 b(\()p
Fo(n)308 b Fr(\025)g Ft(2\))8318 14818 y Fp(\()396 b
Fq(V)-85 b(al)396 b Fp(<)g Fq(V)-85 b(al)13842 14984
y Fn(1)14523 14818 y Fo(:)184 b(:)g(:)398 b Fq(V)-85
b(al)17797 14984 y Fg(n)18795 14818 y Fp(\))15342 b Fq(D)1292
b Ft(Left-asso)31 b(c)370 b(application)399 b(\()p Fo(n)308
b Fr(\025)g Ft(2\))8318 16146 y Fp(\()396 b(rec)g Fq(R)-85
b(T)g(yp)-57 b(e)398 b(V)-85 b(al)396 b Fp(\))17338 b
Fq(C)1336 b Ft(Rect)-31 b(yp)31 b(e)370 b(v)-61 b(alue)8318
17474 y Fp(\()396 b Fq(De)-57 b(c)11092 17640 y Fn(1)11774
17474 y Fo(:)184 b(:)g(:)398 b Fq(De)-57 b(c)15258 17640
y Fg(n)16257 17474 y Fq(V)-85 b(al)396 b Fp(\))15897
b Fq(D)1292 b Ft(Lo)31 b(cal)370 b(declarations)398 b(\()p
Fo(n)309 b Fr(\025)e Ft(1\))8318 18803 y Fp(\()396 b(ccode)h
Fq(Int)f(Id)f(String)i(FieldV)-85 b(al)396 b Fo(:)184
b(:)g(:)398 b Fq(FieldV)-85 b(al)396 b Fp(\))4522 b Fq(E)1377
b Ft(Inline)370 b(C)f(co)31 b(de)369 b(\(Pict)i(only\))8318
20131 y Fp(\()396 b(ccode)h Fq(Int)f(Id)f(String)i(FieldV)-85
b(al)396 b Fo(:)184 b(:)g(:)398 b Fq(FieldV)-85 b(al)396
b Fp(\))4522 b Fq(En)755 b Ft(System)370 b(function)h(call)8318
21459 y Fp(\()396 b(dynamic)h Fq(V)-85 b(al)396 b(R)-85
b(T)g(yp)-57 b(e)397 b Fp(\))15014 b Fq(Dn)670 b Ft(T)-31
b(yp)31 b(ed)370 b(v)-61 b(alue)8318 22788 y Fp([)396
b Fq(Id)g Fp(>)g Fq(V)-85 b(al)395 b Fp(])20494 b Fq(Dn)670
b Ft(V)-92 b(arian)-31 b(t)8318 24116 y Fp(typecase)471
b Fq(R)-85 b(T)g(yp)-57 b(e)473 b(V)-85 b(al)470 b Fp(of)h
Fq(Pat)22269 24282 y Fn(1)23235 24116 y Fp(->)g Fq(V)-85
b(al)26455 24282 y Fn(1)28003 24116 y Fp(...)1052 b Fq(Pat)32483
24282 y Fg(n)33555 24116 y Fp(->)8318 25444 y Fq(V)-85
b(al)9905 25610 y Fg(n)10903 25444 y Fp(else)397 b Fq(V)-85
b(al)15211 25610 y Fg(n)p Fn(+1)34718 24116 y Fq(Dn)670
b Ft(T)-31 b(yp)31 b(e)370 b(matc)-31 b(hing)371 b(\()p
Fo(n)309 b Fr(\025)e Ft(1\))8318 26773 y Fp(switch)419
b Fq(R)-85 b(T)g(yp)-57 b(e)420 b(V)-85 b(al)417 b Fp(of)i(\()f
Fq(Id)21204 26939 y Fn(1)22118 26773 y Fp(>)h Fq(Pat)24803
26939 y Fn(1)25717 26773 y Fp(->)f Fq(V)-85 b(al)28884
26939 y Fn(1)30380 26773 y Fp(...)1000 b Fq(Id)34116
26939 y Fg(n)8318 28101 y Fp(>)396 b Fq(Pat)10980 28267
y Fg(n)11978 28101 y Fp(->)g Fq(V)-85 b(al)15123 28267
y Fg(n)16121 28101 y Fp(\))34718 26773 y Fq(Dn)670 b
Ft(V)-92 b(arian)-31 b(t)371 b(matc)-31 b(hing)371 b(\()p
Fo(n)309 b Fr(\025)e Ft(1\))8318 29429 y Fp({{)396 b
Fq(Id)g Fp(}})22291 b Fq(Tn)714 b Ft(V)-92 b(alue)370
b(inlining)0 31975 y Fq(Path)3877 b Ft(=)1329 b Fq(Id)25407
b(C)1336 b Ft(V)-92 b(ariable)8318 33304 y Fq(Path)395
b Fp(.)h Fq(Id)21784 b(C)1336 b Ft(Record)369 b(\014eld)g(pro)61
b(jection)0 35850 y Fq(FieldV)-85 b(al)2121 b Ft(=)1329
b Fq(V)-85 b(al)24813 b(C)1336 b Ft(V)-92 b(alue)370
b(\014eld)8318 37178 y Fp(#)396 b Fq(T)-85 b(yp)-57 b(e)23161
b(C)1336 b Ft(T)-31 b(yp)31 b(e)370 b(\014eld)0 39724
y Fq(Const)3327 b Ft(=)1329 b Fq(String)23473 b(C)1336
b Ft(String)370 b(constan)-31 b(t)8318 41053 y Fq(Char)24009
b(C)1336 b Ft(Character)370 b(constan)-31 b(t)8318 42381
y Fq(Int)24983 b(C)1336 b Ft(In)-31 b(teger)370 b(constan)-31
b(t)8318 43709 y Fp(true)24076 b Fq(C)1336 b Ft(Bo)31
b(olean)371 b(constan)-31 b(t)8318 45038 y Fp(false)23495
b Fq(C)1336 b Ft(Bo)31 b(olean)371 b(constan)-31 b(t)p
eop end
%%Page: 39 40
TeXDict begin 39 39 bop 0 -2767 a Fs(The)369 b(Nomadic)j(Pict)e
(Language)36996 b Ft(39)0 1107 y Fh(6.3.9)1495 b(T)-42
b(yp)42 b(es)0 3121 y Fq(T)-85 b(yp)-57 b(e)3866 b Ft(=)1329
b Fp(Top)24657 b Fq(C)1336 b Ft(T)-92 b(op)370 b(t)-31
b(yp)31 b(e)8318 4449 y Fq(Id)25407 b(C)1336 b Ft(T)-31
b(yp)31 b(e)370 b(iden)-31 b(ti\014er)8318 5777 y Fp(^)396
b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336 b Ft(Input/output)371
b(c)-31 b(hannel)8318 7106 y Fp(!)396 b Fq(T)-85 b(yp)-57
b(e)23161 b(C)1336 b Ft(Output)370 b(c)-31 b(hannel)8318
8434 y Fp(/)396 b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336
b Ft(Resp)31 b(onsiv)-31 b(e)369 b(output)i(c)-31 b(hannel)8318
9762 y Fp(?)396 b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336
b Ft(Input)369 b(c)-31 b(hannel)8318 11091 y Fp(Int)24657
b Fq(C)1336 b Ft(In)-31 b(teger)370 b(t)-31 b(yp)31 b(e)8318
12419 y Fp(Char)24076 b Fq(C)1336 b Ft(Character)370
b(t)-31 b(yp)31 b(e)8318 13748 y Fp(Bool)24076 b Fq(C)1336
b Ft(Bo)31 b(olean)371 b(t)-31 b(yp)31 b(e)8318 15076
y Fp(String)22914 b Fq(C)1336 b Ft(String)370 b(t)-31
b(yp)31 b(e)8318 16404 y Fp([)396 b Fq(L)-57 b(ab)g(el)397
b(FieldT)-85 b(yp)-57 b(e)397 b Fo(:)184 b(:)g(:)399
b Fq(L)-57 b(ab)g(el)397 b(FieldT)-85 b(yp)-57 b(e)397
b Fp(])7308 b Fq(C)1336 b Ft(Record)369 b(t)-31 b(yp)31
b(e)8318 17733 y Fp(\()396 b Fq(T)-85 b(yp)-57 b(e)397
b Fp(with)g Fq(L)-57 b(ab)g(el)397 b(FieldT)-85 b(yp)-57
b(e)397 b Fo(:)184 b(:)g(:)398 b Fq(L)-57 b(ab)g(el)398
b(FieldT)-85 b(yp)-57 b(e)397 b Fp(\))1928 b Fq(D)1292
b Ft(Record)369 b(extension)8318 19061 y Fp(\()396 b
Fq(T)-85 b(yp)-57 b(e)397 b Fp(where)g Fq(L)-57 b(ab)g(el)397
b(FieldT)-85 b(yp)-57 b(e)397 b Fo(:)184 b(:)g(:)399
b Fq(L)-57 b(ab)g(el)397 b(FieldT)-85 b(yp)-57 b(e)397
b Fp(\))1347 b Fq(D)1292 b Ft(Record)369 b(\014eld)g(o)-31
b(v)g(erride)8318 20389 y Fp(\\)396 b Fq(Kinde)-57 b(dId)13684
20555 y Fn(1)14366 20389 y Fo(:)184 b(:)g(:)398 b Fq(Kinde)-57
b(dId)20442 20555 y Fg(n)21441 20389 y Fp(=)397 b Fq(T)-85
b(yp)-57 b(e)10037 b(C)1336 b Ft(T)-31 b(yp)31 b(e)370
b(op)31 b(erator)397 b(\()p Fo(n)308 b Fr(\025)f Ft(1\))8318
21718 y Fp(\()396 b Fq(T)-85 b(yp)-57 b(e)397 b(T)-85
b(yp)-57 b(e)14216 21884 y Fn(1)14898 21718 y Fo(:)184
b(:)g(:)399 b Fq(T)-85 b(yp)-57 b(e)18848 21884 y Fg(n)19847
21718 y Fp(\))14290 b Fq(C)1336 b Ft(T)-31 b(yp)31 b(e)370
b(application)399 b(\()p Fo(n)309 b Fr(\025)e Ft(1\))8318
23046 y Fp(\()581 b(rec)397 b Fq(Kinde)-57 b(dId)396
b Fp(=)g Fq(T)-85 b(yp)-57 b(e)398 b Fp(\))14095 b Fq(C)1336
b Ft(Recursiv)-31 b(e)369 b(t)-31 b(yp)31 b(e)8318 24374
y Fp(Agent)23495 b Fq(Cn)714 b Ft(Agen)-31 b(t)371 b(t)-31
b(yp)31 b(e)8318 25703 y Fp(Site)24076 b Fq(Dn)670 b
Ft(Site)370 b(t)-31 b(yp)31 b(e)8318 27031 y Fp(Dyn)24657
b Fq(Dn)670 b Ft(Dynamic)370 b(t)-31 b(yp)31 b(e)8318
28359 y Fp([)396 b Fq(Id)10288 28525 y Fn(1)11180 28359
y Fp(>)g Fq(T)-85 b(yp)-57 b(e)14419 28525 y Fn(1)15313
28359 y Fp(...)397 b Fq(Id)18446 28525 y Fg(n)19444 28359
y Fp(>)f Fq(T)-85 b(yp)-57 b(e)22683 28525 y Fg(n)23683
28359 y Fp(])10454 b Fq(Dn)670 b Ft(V)-92 b(arian)-31
b(t)371 b(t)-31 b(yp)31 b(e)8318 29688 y Fp({)396 b Fq(Id)g
Fp(})23453 b Fq(Tn)714 b Ft(T)-31 b(yp)31 b(e)370 b(inlining)0
32234 y Fq(FieldT)-85 b(yp)-57 b(e)1446 b Ft(=)1329 b
Fq(T)-85 b(yp)-57 b(e)24138 b(C)1336 b Ft(V)-92 b(alue)370
b(\014eld)8318 33562 y Fp(#)396 b Fq(Id)g(Constr)20766
b(C)1336 b Ft(T)-31 b(yp)31 b(e)370 b(\014eld)0 36108
y Fq(R)-85 b(T)g(yp)-57 b(e)3144 b Ft(=)1329 b Fr(h)p
Fq(empty)98 b Fr(i)22557 b Fq(R)1321 b Ft(Omitted)371
b(t)-31 b(yp)31 b(e)370 b(annotation)8318 37436 y Fp(:)396
b Fq(T)-85 b(yp)-57 b(e)23161 b(C)1336 b Ft(Explicit)372
b(t)-31 b(yp)31 b(e)369 b(annotation)0 40417 y Fh(6.3.10)1495
b(Kinds)0 42173 y Fq(Kind)3750 b Ft(=)1329 b Fp(\()396
b Fq(Kind)11673 42339 y Fn(1)12355 42173 y Fo(:)184 b(:)g(:)398
b Fq(Kind)16420 42339 y Fg(n)17420 42173 y Fp(->)e Fq(Kind)h
Fp(\))12384 b Fq(C)1336 b Ft(Op)31 b(erator)369 b(kind)397
b(\()p Fo(n)309 b Fr(\025)e Ft(1\))8318 43501 y Fp(Type)24076
b Fq(C)1336 b Ft(T)-31 b(yp)31 b(e)370 b(kind)0 46047
y Fq(Kinde)-57 b(dId)1739 b Ft(=)1329 b Fq(Id)395 b Fp(:)i
Fq(Kind)21656 b(C)1336 b Ft(Explicitly-kinded)373 b(iden)-31
b(ti\014er)8318 47375 y Fq(Id)25407 b(D)1292 b Ft(Implicitly-kinded)373
b(iden)-31 b(ti\014er)0 50356 y Fh(6.3.11)1495 b(Lab)42
b(els)0 52111 y Fq(L)-57 b(ab)g(el)3681 b Ft(=)1329 b
Fr(h)p Fq(empty)98 b Fr(i)22557 b Fq(C)1336 b Ft(Anon)-31
b(ymous)371 b(lab)31 b(el)8318 53440 y Fq(Id)395 b Fp(=)24431
b Fq(C)1336 b Ft(Explicit)372 b(lab)31 b(el)p eop end
%%Page: 40 41
TeXDict begin 40 40 bop 0 9963 a FA(Bibliograph)-86 b(y)0
15784 y Fb([BBHM95])555 b(J.)368 b(M.)g(Bacon,)374 b(J.)368
b(Bates,)375 b(R.)367 b(J.)h(Ha)-28 b(yton,)374 b(and)367
b(K.)h(Mo)28 b(o)g(dy)-85 b(.)532 b(Using)368 b(ev)-28
b(en)g(ts)367 b(to)h(build)f(distributed)h(applications.)533
b(In)5303 17002 y Fa(Pr)-52 b(o)g(c)g(e)g(e)g(dings)366
b(of)f(SDNE)h('95)p Fb(,)341 b(1995.)0 18662 y([Bou92])1905
b(G)-28 b(\023)-484 b(erard)356 b(Boudol.)499 b(Async)-28
b(hron)g(y)355 b(and)g(the)i(pi-calculus.)500 b(T)-85
b(ec)-28 b(hnical)356 b(Rep)28 b(ort)356 b(RR-1702,)k(Inria,)g
(Institut)c(National)h(de)5303 19880 y(Rec)-28 b(herc)g(he)341
b(en)g(Informatique)h(et)g(en)g(Automatique,)h(1992.)0
21540 y([Ha)-28 b(y96])1919 b(Ric)-28 b(hard)314 b(Ha)-28
b(yton.)411 b Fa(O)-26 b(ASIS:)342 b(A)-26 b(n)342 b(Op)-52
b(en)342 b(A)-26 b(r)-52 b(chite)g(ctur)g(e)342 b(for)f(Se)-52
b(cur)g(e)343 b(Interworking)g(Servic)-52 b(es)p Fb(.)413
b(PhD)315 b(thesis,)322 b(Univ)-28 b(ersit)g(y)5303 22758
y(of)341 b(Cam)-28 b(bridge,)341 b(1996.)0 24418 y([HT91])2203
b(Kohei)289 b(Honda)e(and)g(Mario)i(T)-85 b(ok)-28 b(oro.)365
b(An)288 b(ob)57 b(ject)288 b(calculus)g(for)f(async)-28
b(hronous)287 b(comm)-28 b(unication.)368 b(In)287 b(Pierre)h(America,)
5303 25636 y(editor,)351 b Fa(Pr)-52 b(o)g(c)g(e)g(e)g(dings)372
b(of)g(the)g(Eur)-52 b(op)g(e)g(an)372 b(Confer)-52 b(enc)g(e)373
b(on)f(Obje)-52 b(ct-Oriente)g(d)373 b(Pr)-52 b(o)g(gr)g(amming)373
b(\(ECOOP)f('91\))p Fb(,)350 b(v)-28 b(olume)5303 26853
y(512)341 b(of)g Fa(L)-52 b(e)g(ctur)g(e)367 b(Notes)f(in)g(Computer)g
(Scienc)-52 b(e)p Fb(,)343 b(pages)e(133{147.)h(Springer-V)-85
b(erlag,)341 b(1991.)0 28514 y([MPW92])1024 b(R.)391
b(Milner,)406 b(J.)392 b(P)-28 b(arro)g(w,)401 b(and)391
b(D.)h(W)-85 b(alk)-28 b(er.)604 b(A)391 b(calculus)h(of)f(mobile)i
(pro)28 b(cesses,)404 b(P)-28 b(arts)390 b(I)h(and)g(I)28
b(I.)603 b Fa(Information)412 b(and)5303 29732 y(Computation)p
Fb(,)340 b(100\(1\):1{77,)i(1992.)0 31392 y([Nee89])2033
b(R.)401 b(M.)g(Needham.)631 b(Names.)h(In)400 b(S.)g(Mullender,)417
b(editor,)g Fa(Distribute)-52 b(d)420 b(Systems)p Fb(,)c(pages)401
b(89{101.)f(Addison-W)-85 b(esley)g(,)5303 32610 y(1989.)0
34270 y([PT95])2274 b(Benjamin)429 b(C.)f(Pierce)h(and)e(Da)-28
b(vid)429 b(N.)f(T)-85 b(urner.)711 b(Concurren)-28 b(t)427
b(ob)57 b(jects)428 b(in)g(a)g(pro)28 b(cess)428 b(calculus.)714
b(In)427 b(T)-85 b(ak)-57 b(a)-28 b(y)g(asu)427 b(Ito)5303
35488 y(and)314 b(Akinori)i(Y)-85 b(oneza)-28 b(w)g(a,)319
b(editors,)h Fa(Pr)-52 b(o)g(c)g(e)g(e)g(dings)342 b(of)f(the)g(The)-52
b(ory)341 b(and)g(Pr)-52 b(actic)g(e)342 b(of)f(Par)-52
b(al)52 b(lel)342 b(Pr)-52 b(o)g(gr)g(amming)342 b(\(TPPP,)5303
36705 y(Sendai,)330 b(Jap)-52 b(an,)329 b(1994\))p Fb(,)302
b(v)-28 b(olume)294 b(907)g(of)f Fa(L)-52 b(e)g(ctur)g(e)322
b(Notes)g(in)g(Computer)g(Scienc)-52 b(e)p Fb(,)304 b(pages)294
b(187{215.)f(Springer)g(V)-85 b(erlag,)5303 37923 y(1995.)0
39584 y([PT97a])1762 b(Benjamin)468 b(C.)f(Pierce)g(and)g(Da)-28
b(vid)467 b(N.)g(T)-85 b(urner.)827 b(Pict:)707 b(A)467
b(programming)f(language)h(based)g(on)g(the)g(pi-calculus.)5303
40801 y(T)-85 b(ec)-28 b(hnical)501 b(Rep)28 b(ort)501
b(CSCI)e(476,)542 b(Computer)501 b(Science)h(Departmen)-28
b(t,)542 b(Indiana)500 b(Univ)-28 b(ersit)g(y)-85 b(,)542
b(1997.)930 b(App)28 b(eared)502 b(in)5303 42019 y Fa(Pr)-52
b(o)g(of,)330 b(L)-52 b(anguage)325 b(and)f(Inter)-52
b(action:)449 b(Essays)323 b(in)h(Honour)g(of)f(R)-52
b(obin)323 b(Milner)p Fb(,)306 b(Gordon)295 b(Plotkin,)307
b(Colin)295 b(Stirling,)306 b(and)5303 43237 y(Mads)341
b(T)-85 b(ofte,)342 b(editors,)g(MIT)f(Press,)g(2000.)0
44897 y([PT97b])1705 b(Benjamin)411 b(C.)e(Pierce)i(and)e(Da)-28
b(vid)410 b(N.)g(T)-85 b(urner.)656 b Fa(Pict)429 b(Language)h
(De\014nition)p Fb(,)c(1997.)658 b(Av)-57 b(ailable)412
b(electronically)g(as)5303 46115 y(part)341 b(of)g(the)h(Pict)f
(distribution.)0 47775 y([PT97c])1819 b(Benjamin)381
b(C.)f(Pierce)h(and)f(Da)-28 b(vid)381 b(N.)f(T)-85 b(urner.)569
b Fa(Pr)-52 b(o)g(gr)g(amming)402 b(in)f(the)h(Pi-Calculus.)f(A)h(T)-78
b(utorial)400 b(Intr)-52 b(o)g(duction)400 b(to)5303
48993 y(Pict)p Fb(,)341 b(1997.)454 b(Av)-57 b(ailable)344
b(electronically)g(as)d(part)g(of)g(the)h(Pict)f(distribution.)0
50653 y([SWP99])1393 b(P)-28 b(eter)409 b(Sew)-28 b(ell,)428
b(P)-28 b(a)g(w)g(e )-284 b(l)408 b(T.)h(W)-85 b(o)57
b(jciec)-28 b(ho)g(wski,)427 b(and)409 b(Benjamin)h(C.)f(Pierce.)658
b(Lo)28 b(cation-indep)g(enden)-28 b(t)411 b(comm)-28
b(unication)5303 51871 y(for)298 b(mobile)j(agen)-28
b(ts:)434 b(A)299 b(t)-28 b(w)g(o-lev)g(el)300 b(arc)-28
b(hitecture.)385 b(In)299 b(Henri)g(E.)g(Bal,)309 b(Boumediene)300
b(Belkhouc)-28 b(he,)309 b(and)299 b(Luca)g(Cardelli,)5303
53088 y(editors,)321 b Fa(Internet)344 b(Pr)-52 b(o)g(gr)g(amming)342
b(L)-52 b(anguages)343 b(\(ICCL)g('98)f(Workshop,)347
b(Chic)-52 b(ago,)346 b(USA,)c(May)f(1998\))p Fb(,)321
b(v)-28 b(olume)316 b(1686)5303 54306 y(of)393 b Fa(L)-52
b(e)g(ctur)g(e)415 b(Notes)f(in)g(Computer)g(Scienc)-52
b(e)p Fb(,)408 b(pages)394 b(1{31.)f(Springer,)407 b(1999.)610
b(Also)393 b(app)28 b(eared)394 b(as)g(T)-85 b(ec)-28
b(hnical)393 b(Rep)28 b(ort)5303 55524 y(462,)342 b(Computer)e(Lab)28
b(oratory)-85 b(,)342 b(Univ)-28 b(ersit)g(y)341 b(of)g(Cam)-28
b(bridge,)342 b(April)f(1999.)0 57184 y([T)-85 b(ur96])2086
b(Da)-28 b(vid)364 b(N.)g(T)-85 b(urner.)521 b Fa(The)387
b(Polymorphic)f(Pi-c)-52 b(alculus:)512 b(The)-52 b(ory)386
b(and)g(Implementation)p Fb(.)523 b(PhD)364 b(thesis,)371
b(Univ)-28 b(ersit)g(y)364 b(of)5303 58402 y(Edin)-28
b(burgh,)340 b(1996.)0 60062 y([W)-85 b(o)57 b(j00a])1350
b(P)-28 b(a)g(w)g(e )-284 b(l)402 b(T.)h(W)-85 b(o)57
b(jciec)-28 b(ho)g(wski.)639 b Fa(Nomadic)423 b(Pict:)583
b(L)-52 b(anguage)424 b(and)e(Infr)-52 b(astructur)g(e)424
b(Design)f(for)g(Mobile)g(Computation)p Fb(.)5303 61280
y(PhD)232 b(thesis,)256 b(Univ)-28 b(ersit)g(y)233 b(of)f(Cam)-28
b(bridge,)254 b(2000.)277 b(Also)233 b(app)28 b(eared)233
b(as)f(T)-85 b(ec)-28 b(hnical)233 b(Rep)28 b(ort)232
b(492,)255 b(Computer)232 b(Lab)28 b(oratory)-85 b(,)5303
62498 y(Univ)-28 b(ersit)g(y)342 b(of)f(Cam)-28 b(bridge,)341
b(June)h(2000.)0 64158 y([W)-85 b(o)57 b(j00b])1293 b(P)-28
b(a)g(w)g(e )-284 b(l)337 b(T.)h(W)-85 b(o)57 b(jciec)-28
b(ho)g(wski.)450 b Fa(Nomadic)363 b(Pict)f(L)-52 b(anguage)365
b(Libr)-52 b(aries)p Fb(,)340 b(2000.)449 b(Av)-57 b(ailable)340
b(electronically)h(as)d(part)g(of)g(the)5303 65376 y(Nomadic)k(Pict)f
(distribution.)25447 74521 y Ft(40)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
%%EOF