Subject: Proposal I - PostScript

From: L J Clarke <[email-masked]>
Date: Sun, 21 Mar 93 19:48:30 GMT

This is PostScript of Proposal I, credits entirely to Marc Snir, 15 minutes
earlier than previously advertised.  LaTeX preceeded.

----------------------------------------------------------------------
%!PS-Adobe-2.0
%%Creator: dvips 5.495 Copyright 1986, 1992 Radical Eye Software
%%Title: context-i.dvi
%%CreationDate: Sun Mar 21 18:30:21 1993
%%Pages: 7
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSCommandLine: dvips context-i
%DVIPSSource:  TeX output 1993.03.21:1810
%%BeginProcSet: tex.pro
%!
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}
B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 1 -1 0 0 0]
concat}if 72 Resolution div 72 VResolution div neg scale isls{0 Resolution
vsize 72 div mul TR}if Resolution VResolution vsize -72 div 1 add mul TR
matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch
put setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed
true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N
/IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix
fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{
CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn
put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0
0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data
dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128
ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127
sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N
/cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get
S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height
sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0
-1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{/cc X dup
type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1
ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}
B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict
/eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}
if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255
{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76
div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N
/ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{
pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4
getinterval(NeXT)eq or}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{
gsave transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N
/tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
/w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{
p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save
N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 39158280 55380996 1000 300 300
(/a/obsidian/disk/home/u36/lyndon/mpi/context-i.dvi) @start
/Fa 9 122 df<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C
00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1F
E07F1FC013197F9816>65 D<FFC000FFC000FFC0001C00001C00001C00001C00001C00001C0000
1C00001C00001C00001C00001C00001C00001C00001C00001C00401C00E01C00E01C00E01C00E0
FFFFE0FFFFE0FFFFE013197F9816>76 D<003F00007F00003F0000070000070000070000070003
C7000FF7001FFF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F0070
0F003C1F001FFFE00FE7F007C7E014197F9816>100 D<03E00FF81FFC3C1E780E7007E007FFFF
FFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>I<018003C003C0018000000000
000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001C001C07FFFFFFF7F
FF101A7D9916>105 D<7E0000FE00007E00000E00000E00000E00000E00000E7FE00E7FE00E7F
E00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87
F0FFCFF07F87F01419809816>107 D<7E3C00FEFE007FFF000F87800F03800E03800E03800E03
800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>110
D<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B800073C
00071C000E0E007F1FC0FF3FE07F1FC013127F9116>120 D<7F1FC0FF9FE07F1FC01C07000E07
000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F00000F00000F0
0000E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F9116>I
E /Fb 11 121 df<01C00003E00003E0000360000360000770000770000770000770000630000E
38000E38000E38000E38000E38001FFC001FFC001C1C001C1C003C1E00380E00FE3F80FE3F8011
177F9614>65 D<FF00FF0038003800380038003800380038003800380038003800380038003800
38003807380738073807FFFFFFFF10177E9614>76 D<1FC0007FF000707800201800001C00001C
0007FC001FFC003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97
D<03F80FFC1C1C380870006000E000E000E000E00060007000380E1C1E0FFC03F00F107E8F14>
99 D<07E00FF01C38301C700CE00EE00EFFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F
14>101 D<FC0000FC00001C00001C00001C00001C00001C00001DFF801DFF801C3C001C78001C
F0001DE0001FC0001FC0001FE0001EF0001C70001C38001C38001C1C00FE3F80FE3F8011177F96
14>107 D<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C
07001C07001C0700FF8FE0FF8FE01310808F14>110 D<07C01FF03C78701C701CE00EE00EE00E
E00EE00EE00E701C783C3C781FF007C00F107E8F14>I<FE1F00FE7F800EE3800F81000F00000F
00000E00000E00000E00000E00000E00000E00000E00000E0000FFF000FFF00011107F8F14>
114 D<030007000700070007007FFCFFFC07000700070007000700070007000700070E070E070E
070C03FC00F00F157F9414>116 D<7E3F007E3F001E38000E780007700007E00003E00001C000
03C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F8F14>120
D E /Fc 1 16 df<07801FE03FF07FF87FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF87FF83FF01FE007
800E107E9013>15 D E /Fd 48 123 df<00FC7C0183C607078E0607040E07000E07000E07000E
07000E07000E0700FFFFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E
07000E07000E07000E07000E07007F0FF0171A809916>11 D<00FC000182000703000607000E02
000E00000E00000E00000E00000E0000FFFF000E07000E07000E07000E07000E07000E07000E07
000E07000E07000E07000E07000E07000E07000E07007F0FE0131A809915>I<007E1F8001C170
400703C060060380E00E0380400E0380000E0380000E0380000E0380000E038000FFFFFFE00E03
80E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E
0380E00E0380E00E0380E00E0380E07F8FE3FC1E1A809920>14 D<00800100020004000C000800
18003000300030006000600060006000E000E000E000E000E000E000E000E000E000E000600060
0060006000300030003000180008000C00040002000100008009267D9B0F>40
D<8000400020001000180008000C00060006000600030003000300030003800380038003800380
0380038003800380038003000300030003000600060006000C0008001800100020004000800009
267E9B0F>I<60F0F07010101020204080040B7D830B>44 D<FFC0FFC00A0280880D>I<60F0F060
04047D830B>I<60F0F060000000000000000060F0F06004107D8F0B>58
D<60F0F060000000000000000060F0F0701010102020408004177D8F0B>I<000C0000000C0000
000C0000001E0000001E0000003F000000270000002700000043800000438000004380000081C0
000081C0000081C0000100E0000100E00001FFE000020070000200700006007800040038000400
380008001C0008001C001C001E00FF00FFC01A1A7F991D>65 D<FFFF000E01C00E00E00E00700E
00780E00780E00780E00780E00780E00F00E00E00E03C00FFF800E01E00E00700E00780E003C0E
003C0E003C0E003C0E003C0E00380E00780E00F00E01E0FFFF80161A7E991B>I<003F0201C0C6
03002E0E001E1C000E1C0006380006780002700002700002F00000F00000F00000F00000F00000
F000007000027000027800023800041C00041C00080E000803003001C0C0003F00171A7E991C>
I<FFFFF00E00700E00300E00100E00180E00080E00080E00080E04000E04000E04000E0C000FFC
000E0C000E04000E04000E04000E00040E00040E00080E00080E00080E00180E00380E0070FFFF
F0161A7E991A>69 D<FFE7FF0E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E00700E00700FFFF00E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E00700E0070FFE7FF181A7E991D>72 D<FFE00E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B1A7F990E>I<FF00
03FC0F0003C00F0003C00B8005C00B8005C00B8005C009C009C009C009C009C009C008E011C008
E011C008E011C0087021C0087021C0083841C0083841C0083841C0081C81C0081C81C0081C81C0
080F01C0080F01C0080F01C0080601C01C0601C0FF861FFC1E1A7E9923>77
D<FE01FF0F00380F00100B80100B801009C01008E01008E010087010087010083810081C10081C
10080E10080E100807100803900803900801D00801D00800F00800700800700800301C0030FF80
10181A7E991D>I<007F000001C1C000070070000E0038001C001C003C001E0038000E0078000F
0070000700F0000780F0000780F0000780F0000780F0000780F0000780F0000780F00007807800
0F0078000F0038000E003C001E001C001C000E0038000700700001C1C000007F0000191A7E991E
>I<FFFF000E03C00E00E00E00700E00700E00780E00780E00780E00780E00700E00700E00E00E
03C00FFF000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000FF
E000151A7E991A>I<0FC21836200E6006C006C002C002C002E00070007E003FE01FF807FC003E
000E00070003800380038003C002C006E004D81887E0101A7E9915>83 D<7FFFFF00701C070040
1C0100401C0100C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C0000
001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C00
00001C0000001C0000001C000003FFE000191A7F991C>I<3F8070C070E020700070007007F01C
7030707070E070E071E071E0F171FB1E3C10107E8F13>97 D<FC00001C00001C00001C00001C00
001C00001C00001C00001C00001C00001CF8001F0E001E07001C03801C01801C01C01C01C01C01
C01C01C01C01C01C01C01C03801C03001E07001B0C0010F000121A7F9915>I<07F80C1C381C30
087000E000E000E000E000E000E0007000300438080C1807E00E107F8F11>I<007E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E0003CE000C3E00380E00300E00700E00E0
0E00E00E00E00E00E00E00E00E00E00E00600E00700E00381E001C2E0007CFC0121A7F9915>I<
07C01C3030187018600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>I<
01F0031807380E100E000E000E000E000E000E00FFC00E000E000E000E000E000E000E000E000E
000E000E000E000E000E007FE00D1A80990C>I<0FCE187330307038703870387038303018602F
C02000600070003FF03FFC1FFE600FC003C003C003C0036006381C07E010187F8F13>I<FC0000
1C00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001D0C001E0E001E0E00
1C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FF9FC0121A7F
9915>I<18003C003C001800000000000000000000000000FC001C001C001C001C001C001C001C
001C001C001C001C001C001C001C00FF80091A80990A>I<018003C003C0018000000000000000
00000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C0
01C001C041C0E180E3007E000A2182990C>I<FC00001C00001C00001C00001C00001C00001C00
001C00001C00001C00001C3F801C1E001C18001C10001C20001C40001DC0001FE0001CE0001C70
001C78001C38001C1C001C1E001C1F00FF3FC0121A7F9914>I<FC001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80
091A80990A>I<FC7C1F001D8E63801E0781C01E0781C01C0701C01C0701C01C0701C01C0701C0
1C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D107F8F20>I<
FCF8001D0C001E0E001E0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00
1C0E001C0E00FF9FC012107F8F15>I<07E01C38300C700E6006E007E007E007E007E007E00760
06700E381C1C3807E010107F8F13>I<FCF8001F0E001E07001C03801C03801C01C01C01C01C01
C01C01C01C01C01C01C01C03801C03001E07001F0C001CF0001C00001C00001C00001C00001C00
001C0000FF800012177F8F15>I<03C2000C2600381E00300E00700E00E00E00E00E00E00E00E0
0E00E00E00E00E00700E00700E00381E001C2E0007CE00000E00000E00000E00000E00000E0000
0E00007FC012177F8F14>I<FCE01D701E701E201C001C001C001C001C001C001C001C001C001C
001C00FFC00C107F8F0F>I<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C0
20F0408F800C107F8F0F>I<0400040004000C000C001C003C00FFC01C001C001C001C001C001C
001C001C001C201C201C201C201C200E4003800B177F960F>I<FC7E001C0E001C0E001C0E001C
0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C1E000C2E0007CFC012107F8F
15>I<FF1F803C06001C04001C04001E0C000E08000E080007100007100007900003A00003A000
01C00001C00001C00000800011107F8F14>I<FF3F9F803C0E0700380E06001C1604001C170400
1E170C000E2308000E2388000F239800074190000741D00003C1E0000380E0000380E0000180C0
000100400019107F8F1C>I<FF3F803C1C001C18000E100007200007600003C00001C00001E000
03E000027000043800083800181C00381E00FC3FC012107F8F14>I<FF1F803C06001C04001C04
001E0C000E08000E080007100007100007900003A00003A00001C00001C00001C0000080000080
00010000010000E10000E20000E4000078000011177F8F14>I<7FF86070407040E041C041C003
80070007000E081C081C08381070107030FFF00D107F8F11>I E /Fe 36
121 df<004000800300020006000C001C001800380038007000700070007000F000F000F000F0
00F000F000F000F000F00070007000700070003800380018001C000C0006000200030000800040
0A257C9B11>40 D<800040003000100018000C000E00060007000700038003800380038003C003
C003C003C003C003C003C003C003C003800380038003800700070006000E000C00180010003000
400080000A257E9B11>I<70F8FCFCFC7C04040808102040060D7D850C>44
D<78FCFCFCFC78000000000078FCFCFCFC7806117D900C>58 D<00030000000780000007800000
078000000FC000000FC000001BE000001BE000001BE0000031F0000031F0000060F8000060F800
00E0FC0000C07C0000C07C0001803E0001FFFE0003FFFF0003001F0003001F0006000F8006000F
800E000FC0FFC07FFCFFC07FFC1E1A7F9921>65 D<001FE02000FFFCE003F80FE007C003E01F80
01E01F0000E03E0000E07E0000607C000060FC000000FC000000FC000000FC000000FC000000FC
000000FC000000FC0000007C0000607E0000603E0000601F0000C01F8000C007C0038003F80F00
00FFFC00001FF0001B1A7E9920>67 D<FFFFF000FFFFFC000F803F000F800F800F8007C00F8003
E00F8003E00F8001F00F8001F00F8001F80F8001F80F8001F80F8001F80F8001F80F8001F80F80
01F80F8001F80F8001F00F8001F00F8003F00F8003E00F8007C00F800F800F803F00FFFFFE00FF
FFF0001D1A7E9922>I<FFFFFE00FFFFFE000F803E000F800E000F8006000F8007000F8003000F
8303000F8303000F8300000F8700000FFF00000FFF00000F8700000F8300000F8300000F830180
0F8001800F8003000F8003000F8003000F8007000F800F000F803E00FFFFFE00FFFFFE00191A7E
991D>I<FFF8FFF80F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F
800F800F800F800F800F800F80FFF8FFF80D1A7E9911>73 D<FF80000FF8FFC0001FF80FC0001F
800DE00037800DE00037800DE00037800CF00067800CF00067800C7800C7800C7800C7800C3C01
87800C3C0187800C1E0307800C1E0307800C1E0307800C0F0607800C0F0607800C078C07800C07
8C07800C03D807800C03D807800C01F007800C01F007800C01F00780FFC0E07FF8FFC0E07FF825
1A7E992A>77 D<FF800FFCFFC00FFC0FE000C00FF000C00DF000C00CF800C00C7C00C00C3E00C0
0C3F00C00C1F00C00C0F80C00C07C0C00C03E0C00C03F0C00C01F0C00C00F8C00C007CC00C003E
C00C003FC00C001FC00C000FC00C0007C00C0003C00C0003C0FFC001C0FFC000C01E1A7E9923>
I<003FC00001E0780007801E000F000F001F000F803E0007C03E0007C07C0003E07C0003E0FC00
03F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07E0007E03E
0007C03E0007C01F000F800F801F0007C03E0001E07800003FC0001C1A7E9921>I<FFFFE000FF
FFF8000F807E000F803F000F801F000F801F800F801F800F801F800F801F800F801F800F801F00
0F803E000F807C000FFFF8000F8000000F8000000F8000000F8000000F8000000F8000000F8000
000F8000000F8000000F800000FFF80000FFF80000191A7E991E>I<FFFFC000FFFFF0000F80FC
000F807E000F803E000F803F000F803F000F803F000F803F000F803E000F807C000F80F8000FFF
C0000F81C0000F81E0000F80F0000F80F8000F80F8000F80F8000F80FC000F80FC000F80FC000F
80FC0C0F807E0CFFF83F18FFF80FF01E1A7E9921>82 D<07F0401FFDC03C0FC07803C07001C0F0
01C0F000C0F000C0F80000FF00007FF8003FFF001FFF800FFFC001FFE0000FE00003F00001F0C0
00F0C000F0C000F0E000E0F001E0FC03C0EFFF8083FE00141A7E9919>I<7FFFFF807FFFFF8078
1F0780701F0380601F0180E01F01C0C01F00C0C01F00C0C01F00C0001F0000001F0000001F0000
001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00
00001F0000001F000007FFFC0007FFFC001A1A7E991F>I<7FF87FF07FF87FF007E0060003E00C
0003F01C0001F8380000F83000007C6000007EE000003FC000001F8000001F8000000FC000000F
C000000FE000001BF0000039F8000030F8000060FC0000E07E0001C03E0001801F0003001F8007
000FC0FFE07FFCFFE07FFC1E1A7F9921>88 D<0FF0001C3C003E1E003E0E003E0F001C0F00000F
0000FF000FCF003E0F007C0F00F80F00F80F00F80F00F817007C27E01FC3E013117F9015>97
D<03FC000F0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F800007800007800
003C01801C03000F060003FC0011117F9014>99 D<000FE0000FE00001E00001E00001E00001E0
0001E00001E00001E003F9E00F07E01C03E03C01E07801E07801E0F801E0F801E0F801E0F801E0
F801E07801E07801E03C01E01C03E00F0DFC03F9FC161A7F9919>I<03F0000E1C001C0E003C07
00780700780780F80780F80780FFFF80F80000F800007800007800003C01801C03000E060003FC
0011117F9014>I<00FE0003C700078F800F0F800F0F800F07000F00000F00000F0000FFF000FF
F0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00007FE0007FE000111A80990E>I<FE0000FE00001E00001E00001E00001E00001E00001E0000
1E00001E1F001E63C01E81C01F01E01F01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E0
1E01E01E01E01E01E0FFCFFCFFCFFC161A7F9919>104 D<1C003E003E003E003E001C00000000
00000000007E007E001E001E001E001E001E001E001E001E001E001E001E001E001E00FF80FF80
091B7F9A0D>I<FE0000FE00001E00001E00001E00001E00001E00001E00001E00001E0FF01E0F
F01E07001E0E001E1C001E30001E60001FF0001FF8001F3C001E1C001E0E001E0F001E07801E03
80FFC7F8FFC7F8151A7F9917>107 D<FE00FE001E001E001E001E001E001E001E001E001E001E
001E001E001E001E001E001E001E001E001E001E001E001E00FFC0FFC00A1A7F990D>I<FE1F01
F000FE63C63C001E81C81C001F01F01E001F01F01E001E01E01E001E01E01E001E01E01E001E01
E01E001E01E01E001E01E01E001E01E01E001E01E01E001E01E01E001E01E01E00FFCFFCFFC0FF
CFFCFFC022117F9025>I<FE1F00FE63C01E81C01F01E01F01E01E01E01E01E01E01E01E01E01E
01E01E01E01E01E01E01E01E01E01E01E0FFCFFCFFCFFC16117F9019>I<03F8000E0E003C0780
3803807803C07803C0F803E0F803E0F803E0F803E0F803E0F803E07803C07C07C03C07800E0E00
03F80013117F9016>I<FE7F00FFC3C01F01E01E00F01E00F81E00781E007C1E007C1E007C1E00
7C1E007C1E00781E00F81E00F01F01E01F83C01E7F001E00001E00001E00001E00001E0000FFC0
00FFC00016187F9019>I<FC78FC9C1D3E1D3E1E3E1E1C1E001E001E001E001E001E001E001E00
1E00FFC0FFC00F117F9012>114 D<1FB020704030C030C030F000FF807FE03FF807F8003CC00C
C00CE00CE008F830CFE00E117F9011>I<06000600060006000E000E001E003FF0FFF01E001E00
1E001E001E001E001E001E001E181E181E181E181E180F3003E00D187F9711>I<FE0FE0FE0FE0
1E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E01E03E01E03E0
0F05FC03F9FC16117F9019>I<FF1FE1F8FF1FE1F83C0780601E0780C01E07C0C01F0DC1C00F0D
C1800F0DE1800798E3000798E30007B8F70003F0760003F07E0001E03C0001E03C0001E03C0000
C018001D117F9020>119 D<FF0FF0FF0FF01E07000F0600078C0003D80003F80001F00000F000
01F80001BC00031E00071E000E0F001C0780FE0FF0FE0FF014117F9017>I
E /Ff 31 122 df<FFFCFFFCFFFCFFFC0E047F8C13>45 D<387CFEFEFE7C3807077C8610>I<00
180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001F80001F80001
F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001
F80001F80001F80001F8007FFFE07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07
F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F
00003E0000380000700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFF
F0FFFFF015207D9F1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F
03F00003F00003E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E
00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E0
0001E00003E00003E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E0
0707E00E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E0
0007E00007E00007E000FFFE00FFFE17207E9F1C>I<0003FE0080001FFF818000FF01E38001F8
003F8003E0001F8007C0000F800F800007801F800007803F000003803F000003807F000001807E
000001807E00000180FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
FE00000000FE000000007E000000007E000001807F000001803F000001803F000003801F800003
000F8000030007C000060003F0000C0001F800380000FF00F000001FFFC0000003FE000021227D
A128>67 D<FFFFFFF8FFFFFFF807F001F807F0007807F0003807F0001807F0001C07F0001C07F0
000C07F0000C07F0180C07F0180C07F0180007F0180007F0380007F0780007FFF80007FFF80007
F0780007F0380007F0180007F0180007F0180007F0180007F0000007F0000007F0000007F00000
07F0000007F0000007F0000007F00000FFFFE000FFFFE0001E227EA123>70
D<FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F0000007F0001807F0001807F0001807F0001807F0003807F0003807F0007007F00070
07F000F007F001F007F007F0FFFFFFF0FFFFFFF01D227EA122>76 D<FFFF803FFCFFFF803FFC07
F000018007F000018007F000018007F000018007F000018007F000018007F000018007F0000180
07F000018007F000018007F000018007F000018007F000018007F000018007F000018007F00001
8007F000018007F000018007F000018007F000018007F000018007F000018007F000018007F000
018003F000030003F800030001F800060000FC000E00007E001C00003F80F800000FFFE0000001
FF000026227EA12B>85 D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F000
3FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18
167E951B>97 D<FF000000FF0000001F0000001F0000001F0000001F0000001F0000001F000000
1F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8001FF07C001F801E001F001F
001F000F801F000F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F00
0FC01F000F801F001F801F801F001FC03E001EE07C001C3FF800180FC0001A237EA21F>I<00FF
8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC0000FC00
007C00007E00007E00003E00301F00600FC0E007FF8000FE0014167E9519>I<0001FE000001FE
0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000
3E0000003E0001FC3E0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC
003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E00
1E00FE000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C
00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F
00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87E00F83C0
0F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80000F8000
0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000
7FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03E07C03
E07C03E03C03C03E07C01F0F801FFF0013FC003000003000003800003FFF801FFFF00FFFF81FFF
FC3800FC70003EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFFE001FF0018217E951C
>I<FF000000FF0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F
0000001F0000001F0000001F0000001F07E0001F1FF8001F307C001F403C001F803E001F803E00
1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E
001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FFC01A237EA21F>I<1C003F007F007F
007F003F001C000000000000000000000000000000FF00FF001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310>I<FF00FF001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B237EA210>108
D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F801F801F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF07E000FF1FF8001F307C001F403C00
1F803E001F803E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E
001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FFC01A167E951F>
I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC00
7EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF0FE000
FF3FF8001FF07C001F803E001F001F001F001F801F001F801F000FC01F000FC01F000FC01F000F
C01F000FC01F000FC01F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC001F3F
F8001F0FC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000FF
E00000FFE000001A207E951F>I<FE1F00FE3FC01E67E01EC7E01E87E01E87E01F83C01F00001F
00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FF
F00013167E9517>114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0007F
F8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F00011
167E9516>I<0180000180000180000180000380000380000780000780000F80003F8000FFFF00
FFFF000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8180
0F81800F81800F81800F81800F830007C30003FE0000F80011207F9F16>I<FF01FE00FF01FE00
1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E
001F003E001F003E001F003E001F003E001F003E001F007E001F00FE000F81BE0007FF3FC001FC
3FC01A167E951F>I<FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0
180003E0180001F0300001F0300000F8600000F86000007CC000007CC000007FC000003F800000
3F8000001F0000001F0000000E0000000E00001B167F951E>I<FFE7FF07F8FFE7FF07F81F0078
00C00F807801800F807C01800F807C018007C07E030007C0DE030007E0DE070003E0DF060003E1
8F060001F18F0C0001F38F8C0001FB079C0000FB07D80000FE03D800007E03F000007E03F00000
7C01F000003C01E000003800E000001800C00025167F9528>I<FFE01FE0FFE01FE00F8006000F
8006000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F86000
007CC000007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E0000000C00
00000C00000018000078180000FC380000FC300000FC60000069C000007F8000001F0000001B20
7F951E>121 D E /Fg 1 111 df<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C
03801C03801C03801C0700380710380710380E10380E2070064030038014127E9119>110
D E /Fh 2 16 df<FFFFFF80FFFFFF8019027D8A20>0 D<03C00FF01FF83FFC7FFE7FFEFFFFFF
FFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D E /Fi 37
123 df<0020004001800380030006000E001C001C003C0038003800780078007800F800F000F0
00F000F000F000F000F000F000F000F800780078007800380038003C001C001C000E0006000300
03800180004000200B297C9E13>40 D<800040003000380018000C000E00070007000780038003
8003C003C003C003E001E001E001E001E001E001E001E001E001E003E003C003C003C003800380
0780070007000E000C00180038003000400080000B297D9E13>I<78FCFCFEFE7A020204040808
3040070E7D850D>44 D<00038000000380000007C0000007C0000007C000000FE000000FE00000
1FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E00
01803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07F
FEFFC07FFE1F1C7E9B24>65 D<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E03E00
00E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC000000FC000000FC
000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007C0030003F80E00
00FFFC00001FE0001B1C7D9B22>67 D<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC003
800FC003800FC181800FC181800FC181800FC180000FC380000FFF80000FFF80000FC380000FC1
80000FC180000FC180600FC180600FC000E00FC000C00FC000C00FC001C00FC001C00FC003C00F
C00F80FFFFFF80FFFFFF801B1C7E9B1F>69 D<FFFFFFFF07E007E007E007E007E007E007E007E0
07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101C7F
9B12>73 D<FFFC07FFFFFC07FF0FC000E00FC001C00FC003800FC006000FC00C000FC038000FC0
70000FC0E0000FC1C0000FC3C0000FC7E0000FCFE0000FFBF0000FF3F8000FE1F8000FC0FC000F
C0FE000FC07E000FC03F000FC01F800FC01FC00FC00FC00FC007E00FC007F0FFFC3FFFFFFC3FFF
201C7E9B25>75 D<FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0030FC0030FC0030FC0070FC0070FC0060F
C00E0FC01E0FC07EFFFFFEFFFFFE181C7E9B1D>I<FFC00003FFFFE00007FF0FE00007F00DF000
0DF00DF0000DF00DF0000DF00CF80019F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E
0061F00C1F00C1F00C1F00C1F00C1F00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F00C
03E601F00C03E601F00C01FC01F00C01FC01F00C01FC01F00C00F801F00C00F801F0FFC0701FFF
FFC0701FFF281C7E9B2D>I<FFE003FFFFE003FF0FF000300FF800300DFC00300CFE00300C7E00
300C3F00300C1F80300C1FC0300C0FE0300C07F0300C03F0300C01F8300C01FC300C00FE300C00
7F300C003F300C001FB00C001FF00C000FF00C0007F00C0003F00C0001F00C0000F00C0000F0FF
C00070FFC00030201C7E9B25>I<003FE00001F07C0003C01E000F800F801F0007C01E0003C03E
0003E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8
FC0001F8FC0001F87C0001F07E0003F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E
0001F07C00003FE0001D1C7D9B24>I<FFFFF800FFFFFE000FC03F800FC00F800FC007C00FC007
E00FC007E00FC007E00FC007E00FC007E00FC007C00FC007C00FC00F800FC03F000FFFFC000FC0
00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F
C00000FFFC0000FFFC00001B1C7E9B21>I<FFFFF00000FFFFFE00000FC03F00000FC00F80000F
C007C0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007C0000FC00F8000
0FC03E00000FFFF000000FC07C00000FC03E00000FC03F00000FC01F80000FC01F80000FC01F80
000FC01F80000FC01F80000FC01F80000FC01F81800FC01F81800FC00FC180FFFC07C300FFFC01
FE00211C7E9B24>82 D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE00
00FFE0007FFE003FFF003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000
E0E000E0F001C0FC03C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0
601F8060E01F8070C01F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000001F80
00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
8000001F8000001F800007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03FF0FC000300FC0
00300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300F
C000300FC000300FC000300FC000300FC000300FC000300FC000300FC0003007C0003007C00060
03E000E001F001C000FC0780007FFE00000FF800201C7E9B25>I<FFFC7FFE0FFCFFFC7FFE0FFC
0FC007E000C00FC007F000C00FE003F001C007E003F0018007E007F8018003F007F8030003F007
F8030003F80CFC070001F80CFC060001F81CFE060001FC187E0E0000FC187E0C0000FC387F0C00
007E303F1800007E303F1800007F601FB800003F601FB000003FE01FF000003FC00FF000001FC0
0FE000001FC00FE000000F8007C000000F8007C000000F0003C000000700038000000700038000
2E1C7F9B31>87 D<7FFE1FFE007FFE1FFE0007F001800003F803800001FC07000000FC06000000
FE0C0000007F1C0000003F380000003FB00000001FE00000000FE00000000FE000000007F00000
0003F800000007F80000000FFC0000000CFE000000187E000000387F000000703F800000601F80
0000C01FC00001C00FE000018007F000030007F000FFF03FFF80FFF03FFF80211C7F9B24>I<FF
FC01FF80FFFC01FF800FE000380007F000300003F800700003F800600001FC00C00000FE01C000
00FE018000007F030000003F870000003F860000001FCE0000000FFC0000000FF800000007F800
000003F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
00000003F000000003F00000003FFF0000003FFF0000211C7F9B24>I<7FFFFC7FFFFC7E01F878
03F87003F0E007E0E007E0C00FC0C01FC0C01F80003F00007F00007E0000FC0000FC0001F80003
F80603F00607E0060FE0060FC00E1F800E1F801C3F001C7F003C7E00FCFFFFFCFFFFFC171C7D9B
1D>I<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0
F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D<03FC000E0E001C1F003C1F0078
1F00780E00F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003
F80011127E9115>99 D<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001
F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801
F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C01C078
01C07801E0F801E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F038001
FC0013127F9116>I<03F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F00
0E0E001BF8001000001800001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F00078
7000707800F01E03C007FF00151B7F9118>103 D<1E003F003F003F003F001E00000000000000
000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FF
E0FFE00B1E7F9D0E>105 D<FF0000FF00001F00001F00001F00001F00001F00001F00001F0000
1F00001F00001F0FF81F0FF81F03801F07001F0C001F18001F70001FF8001FFC001FBC001F3E00
1F1F001F0F001F0F801F07C01F03E0FFC7FCFFC7FC161D7F9C19>107 D<FF0FC0FF31E01F40F0
1F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
FFE7FFFFE7FF18127F911B>110 D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8
F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>I<FE3E
00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F00001F00001F00001F00001F00
001F00001F0000FFF000FFF00011127F9114>114 D<1FD830786018E018E018F000FF807FE07F
F01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<0300030003000300070007000F
000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F08079803F0
0E1A7F9913>I<FF8FF8FEFF8FF8FE1F03E0301F03E0301F83E0700F83F0600F86F06007C6F0C0
07CEF8C007EC79C003EC7D8003F83D8001F83F0001F83F0001F01F0000F01E0000E00E0000E00E
001F127F9122>119 D<FFC7FCFFC7FC1F81800F838007C70003EE0001FC0001F80000F800007C
0000FE0001DF00039F00070F800607C00C03E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F
00601F80E00F80C00FC0C007C18007C18003E30003E30001F70001F60000FE0000FC0000FC0000
7800007800003000003000007000706000F86000F8C000F980007300003E0000161A7F9119>I<
3FFF803C1F00303F00303E00607C0060FC0060F80001F00003F00007E00007C1800F81801F8180
1F03803E03007E07007C0F00FFFF0011127F9115>I E /Fj 15 121 df<3C7EFFFFFFFF7E3C08
087B8712>46 D<000C00001C0000FC000FFC00FFFC00F0FC0000FC0000FC0000FC0000FC0000FC
0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00FFFFFCFFFF
FC16257BA420>49 D<00FF000007FFE0001E07F8003801FC007800FE007E00FF00FF007F00FF00
7F80FF007F80FF003F807E003F803C003F8000007F8000007F0000007F000000FE000000FE0000
01FC000001F8000003F0000007C00000078000000F0000001E0000003800000070018000E00180
01C001800380030007000300060003000FFFFF001FFFFF003FFFFF007FFFFE00FFFFFE00FFFFFE
0019257DA420>I<0000FF80080007FFF018003FC03C38007E000E7801FC0003F803F00001F807
E00000F80FE00000781FC00000781FC00000383F800000383F800000387F800000187F00000018
7F00000018FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000
00FF00000000FF00000000FF000000007F000000007F000000187F800000183F800000183F8000
00181FC00000301FC00000300FE000006007E000006003F00000C001FC000180007E000700003F
C03C000007FFF8000000FFC00025287CA72E>67 D<0001FF0000001FFFF000007F01FC0000FC00
7E0003F8003F8007F0001FC00FE0000FE00FC00007E01FC00007F03F800003F83F800003F83F80
0003F87F000001FC7F000001FC7F000001FCFF000001FEFF000001FEFF000001FEFF000001FEFF
000001FEFF000001FEFF000001FEFF000001FEFF000001FEFF000001FE7F000001FC7F000001FC
7F800003FC7F800003FC3F800003F83FC00007F81FC00007F00FC00007E00FE0000FE007F0001F
C003F8003F8000FC007E00007F01FC00001FFFF0000001FF000027287CA730>79
D<03FF00000FFFE0001F03F0003F80F8003F80FC003F807C001F007E001F007E0000007E000000
7E0000007E00000FFE0001FFFE0007F07E001FC07E003F807E007F007E00FE007E00FE007E18FE
007E18FE007E18FE00BE187F01BE183F873FF01FFE1FE003F80F801D1A7E9920>97
D<007F8003FFE007E1F00F80F81F007C3F007E7E003E7E003E7E003FFE003FFE003FFFFFFFFFFF
FFFE0000FE0000FE0000FE00007E00007E00003F00003F00031F80060FC00607F01C01FFF0003F
C0181A7E991D>101 D<0F001F801FC03FC03FC01FC01F800F0000000000000000000000000000
00FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
0FC00FC00FC00FC00FC0FFFCFFFC0E297FA811>105 D<FFC0FC00FFC3FF000FC60F800FC80FC0
0FD007E00FE007E00FE007E00FE007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007
E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
07E0FFFC7FFEFFFC7FFE1F1A7E9924>110 D<007FC00001FFF00007E0FC000F803E001F001F00
3F001F803E000F807E000FC07E000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000F
E0FE000FE0FE000FE07E000FC07E000FC07F001FC03F001F801F001F000F803E0007E0FC0001FF
F000007FC0001B1A7E9920>I<FFC1FC00FFCFFF800FDC0FC00FF007E00FE003F00FC001F80FC0
01FC0FC001FC0FC000FC0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0F
C000FE0FC000FC0FC001FC0FC001F80FC003F80FE003F00FF007E00FDC1FC00FCFFF000FC3FC00
0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC00
00FFFC00001F257E9924>I<FF83E0FF8FF80F8C780F90FC0FB0FC0FA0FC0FA0780FE0000FC000
0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC000FFFE00FFFE00161A7E991A>114 D<03F8C01FFFC03C07C07801C07001C0F000C0
F000C0F800C0FC0000FFC0007FFC003FFF001FFF800FFFC001FFE0000FF00003F0C001F0C000F0
E000F0E000F0F000E0F801E0FE03C0E7FF80C1FC00141A7E9919>I<0060000060000060000060
0000E00000E00001E00001E00003E00007E0001FE000FFFFC0FFFFC007E00007E00007E00007E0
0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E06007E06007E0
6007E06007E06007E06003F0C001F0C000FF80003E0013257FA419>I<FFF81FFCFFF81FFC0FE0
038007F0030003F0060001F80E0001FC1C0000FE3800007E7000003F6000001FC000001FC00000
0FE0000007E000000FF000000FF8000019FC000038FC0000707E0000E03F0001C03F8001801F80
03000FC0070007E0FFC03FFEFFC03FFE1F1A7F9922>120 D E /Fk 1 98
df<00200000700000700000700000B80000B80000B800011C00011C00011C00020E00020E0004
070004070007FF000803800803800803801801C03803C0FE0FF815157F9419>97
D E /Fl 62 123 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01
C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E
01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000
0E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00
000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<003F07E00001C0
9C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E
00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C00
0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C
000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>14 D<6060F0F0F8F868680808
08080808101010102020404080800D0C7F9C15>34 D<60F0F8680808081010204080050C7C9C0C
>39 D<004000800100020006000C000C0018001800300030007000600060006000E000E000E000
E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C000C0006
0002000100008000400A2A7D9E10>I<800040002000100018000C000C00060006000300030003
8001800180018001C001C001C001C001C001C001C001C001C001C001C001C00180018001800380
03000300060006000C000C00180010002000400080000A2A7E9E10>I<60F0F070101010102020
4080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<03C00C301818300C
300C700E60066006E007E007E007E007E007E007E007E007E007E007E007E007E0076006600670
0E300C300C18180C3007E0101D7E9B15>48 D<030007003F00C700070007000700070007000700
07000700070007000700070007000700070007000700070007000700070007000F80FFF80D1C7C
9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C0038007000
6000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E78
0E781E381E001C001C00180030006007E00030001C001C000E000F000F700FF80FF80FF80FF00E
401C201C183007E0101D7E9B15>I<000C00000C00001C00003C00003C00005C0000DC00009C00
011C00031C00021C00041C000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00
001C00001C00001C00001C00001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC0200020
00200020002000200023E024302818301C200E000E000F000F000F600FF00FF00FF00F800E401E
401C2038187007C0101D7E9B15>I<00F0030C06040C0E181E301E300C700070006000E3E0E430
E818F00CF00EE006E007E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15
>I<60F0F0600000000000000000000060F0F06004127C910C>58 D<60F0F06000000000000000
00000060F0F0701010101020204080041A7C910C>I<000600000006000000060000000F000000
0F0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041E000
0041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C0006003E
0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<001F808000E061800180
1980070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F0
000000F0000000F0000000F0000000F0000000F0000000F0000000700000807800008078000080
380000801C0001001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>67
D<FFFFFC0F003C0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06
000FFE000F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F00
0C0F003CFFFFFC181C7E9B1C>69 D<FFFFF80F00780F00180F00080F00080F000C0F00040F0004
0F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F0000
0F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<FFF00F000F000F000F000F
000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F00FFF00C1C7F9B0F>73 D<FFF8000F80000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00080F00080F00080F
00180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F
8000F8000BC00178000BC00178000BC001780009E002780009E002780008F004780008F0047800
08F0047800087808780008780878000878087800083C107800083C107800083C107800081E2078
00081E207800081E207800080F407800080F407800080780780008078078000807807800080300
78001C03007800FF8307FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E00400
09E0040008F0040008F8040008780400083C0400083C0400081E0400080F0400080F0400080784
000807C4000803C4000801E4000801E4000800F40008007C0008007C0008003C0008003C000800
1C0008000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C000E00
0E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F0
0001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C000780
1C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00
780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00
000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000171C
7E9B1C>I<FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F00
1E000F001C000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F
0078000F0078000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C20
000007C01C1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E00080E00080E00080
F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C0
8001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0
600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F00
0E000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F
0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000400
0F0004000700080007800800038010000180100000C020000070C000001F00001A1D7E9B1F>I<
FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F00100F001F001007801F002007802780
20078027802003C027804003C043C04003C043C04003E043C04001E081E08001E081E08001E081
E08000F100F10000F100F10000F100F100007900FA00007A007A00007A007A00003E007C00003C
003C00003C003C00003C003C00001800180000180018000018001800281D7F9B2B>87
D<7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F0400000788000007D
8000003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0000021E00000
41F00000C0F8000080780001007C0003003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B
1F>I<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>92
D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E01C
40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C00001C00001C0000
1C00001C00001C00001C00001C00001C00001C7C001D86001E03001C01801C01C01C00C01C00E0
1C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E030019060010F800131D7F9C17>
I<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007C00E12
7E9112>I<003F0000070000070000070000070000070000070000070000070000070000070003
E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E0070060070070
0700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000
E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E00
0E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C00
1818001C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0
C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C03801C03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0141D7F9C17
>I<18003C003C0018000000000000000000000000000000FC001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C0000000
00000000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C001C08001C10
001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF9F
E0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<FC7E07E000
1C838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C
001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0
1C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03801C03801C03801C
03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF014127F9117>I<03F000
0E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C0600180700380
3003001806000E1C0003F00012127F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00
E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C00
001C00001C00001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00300F0070
0700700700E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007
C700000700000700000700000700000700000700000700003FE0131A7E9116>I<FCE01D301E78
1E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F9110>I<1F90
30704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0608FC00D127F9110
>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C
101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C03801C03801C03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C07800C07800E1B8003E3F01412
7F9117>I<FF07E03C03801C01001C01000E02000E020007040007040007040003880003880003
D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03801C070180
1C0701001C0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E8
0003C0680001C0700001C0700001803000008020001B127F911E>I<7F8FF00F03800F03000702
0003840001C80001D80000F00000700000780000F800009C00010E00020E000607000403801E07
C0FF0FF81512809116>I<FF07E03C03801C01001C01000E02000E020007040007040007040003
880003880003D80001D00001D00000E00000E00000E000004000004000008000008000F08000F1
0000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003C0038007000F
040E041C043C0C380870087038FFF80E127F9112>I E /Fm 38 122 df<000300060008001800
30006000C000C0018003000300060006000C000C001C0018001800380030003000700070006000
600060006000E000E000E000E000E0006000600060006000600020003000100008000800102A7B
9E11>40 D<001000100008000C0004000600060006000600060007000700070007000700060006
00060006000E000E000C000C001C001800180038003000300060006000C000C001800300030006
000C00180010006000C000102A809E11>I<FFC0FFC0FFC00A037D890F>45
D<3078F06005047C830D>I<00020006000C001C007C039C003800380038003800700070007000
7000E000E000E000E001C001C001C001C003800380038003800780FFF00F1C7C9B15>49
D<00C06000FFC001FF8001FE00010000010000020000020000020000020000047800058C000606
00040600080600000700000700000600000E00000E00700E00700C00E01C008018008038004030
0040600021C0001F0000131D7C9B15>53 D<000F0000308000C080018380038380030000060000
0E00000C00001C00001CF0003B18003C0C00380C00780C00700E00700E00700E00601C00E01C00
E01C00E01C00E03800E03800E0700060600060C0002180001E0000111D7B9B15>I<060F0F0600
0000000000000000003078F06008127C910D>58 D<0003F020001E0C60003002E000E003C001C0
01C0038001C0070000C00E0000801E0000801C0000803C0000803C000000780000007800000078
000000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F000080070000800
7000100038002000180040000C0180000706000001F800001B1E7A9C1E>67
D<01FFFFE0003C00E0003800600038004000380040003800400070004000700040007020400070
200000E0400000E0400000E0C00000FFC00001C0800001C0800001C0800001C080000381010003
8001000380020003800200070004000700040007000C00070018000E007800FFFFF0001B1C7D9B
1C>69 D<01FFE0003C0000380000380000380000380000700000700000700000700000E00000E0
0000E00000E00001C00001C00001C00001C0000380080380080380080380100700100700300700
600700E00E03C0FFFFC0151C7D9B1A>76 D<01FE0007F8003E000780002E000F00002E00170000
2E001700002E002700004E002E00004E004E00004E004E00004E008E00008E011C00008E011C00
008E021C00008E021C000107043800010704380001070838000107103800020710700002072070
0002072070000207407000040740E000040780E000040700E0000C0700E0001C0601E000FF861F
FC00251C7D9B25>I<01FC03FE001C0070003C0060002E0040002E0040002E0040004700800047
008000470080004380800083810000838100008181000081C1000101C2000101C2000100E20001
00E2000200E4000200740002007400020074000400380004003800040038000C0018001C001000
FF8010001F1C7D9B1F>I<000F8400304C00403C00801801001803001803001806001006001006
000007000007000003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C020
00C0600180600180600300600200F00400CC180083E000161E7D9C17>83
D<1FFFFFC01C0701C0300E00C0200E0080600E0080400E0080401C0080801C0080801C0080001C
0000003800000038000000380000003800000070000000700000007000000070000000E0000000
E0000000E0000000E0000001C0000001C0000001C0000001C0000003C000007FFE00001A1C799B
1E>I<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C38
0F127B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E603830383070
38703870387038E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13>I<01F007080C
08181C3838300070007000E000E000E000E000E000E008E010602030C01F000E127B9113>I<00
1F80000380000380000700000700000700000700000E00000E00000E00000E0003DC00063C000C
3C00181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E200C0E20061
E4006264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000E000
E000E0086010602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C000038
0000380000380000380000380003FF8000700000700000700000700000700000E00000E00000E0
0000E00000E00001C00001C00001C00001C00001C0000380000380000380000300000300000700
00C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E381C38
1C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>
I<0FC00001C00001C0000380000380000380000380000700000700000700000700000E78000E8C
000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C003838007038807038807070
80707100E03200601C00111D7D9C15>I<01800380010000000000000000000000000000001C00
2600470047008E008E000E001C001C001C0038003800710071007100720072003C00091C7C9B0D
>I<0FC00001C00001C0000380000380000380000380000700000700000700000700000E0F000E
11000E23800E43801C83001C80001D00001E00003F800039C00038E00038E00070E20070E20070
E20070E400E06400603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E
000E001C001C001C001C0038003800380038007000700070007000E400E400E400E40068003800
091D7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E0
1C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01
C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C
0E001C1C00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C180C38
0C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I<07870004D9
8008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C00381800703800703000707
000706000E8C000E70000E00000E00001C00001C00001C00001C00003C0000FF8000131A7F9115
>I<3C3C26C2468747078E068E000E000E001C001C001C001C0038003800380038007000300010
127C9112>114 D<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C03080
6060C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E000E
000E000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E030027070047
0700470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C0038388038388018388018
39001C5900078E0011127C9116>I<1E06270E470E4706870287020E020E021C041C041C041C08
18083808181018200C4007800F127C9113>I<1E01832703874703874703838707018707010E07
010E07011C0E021C0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C
>I<070E0019910010E38020E38041C30041C00001C00001C00003800003800003800003800007
0200670200E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E
0E1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C00101A
7C9114>I E /Fn 8 116 df<FFFFFFFF80FFFFFFFF80FFFFFFFF80001FFC0000001FFC0000001F
00FFFFFFFF80FFFFFFFF80FFFFFFFF8021477DC628>73 D<FFFFFFFFFFF80000FFFFFFFFFFFFC0
FFFFFF8000000040477CC64B>80 D<0007FFC0000000003FFFFC00000000FFFFFF00000003F801
FFC0000007F0003FE0000007F8001FF000000FFC000FF800000FFC000FFC00000FFC0007FC0000
0FFC0007FE00000FFC0003FE000007F80003FF000003F00003FF000000000003FF000000000003
FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF000000
0007FFFF00000000FFFFFF0000000FFFE3FF0000007FF803FF000001FFC003FF000003FF0003FF
000007FC0003FF00000FF80003FF00001FF00003FF00003FF00003FF00007FE00003FF00007FE0
0003FF0380FFC00003FF0380FFC00003FF0380FFC00003FF0380FFC00003FF0380FFC00007FF03
80FFC00007FF03807FE0000DFF03807FE0001DFF03803FF00039FF87001FF80070FFCF000FFE03
E07FFE0007FFFF807FFC0000FFFE001FF800001FF00007E000312E7CAD37>97
D<00FF80FFFF80FFFF80FFFF8003FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF
8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF
8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF
8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF
8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001FF
8001FF8001FF8001FF8001FF80FFFFFFFFFFFFFFFFFF18487DC71F>108
D<00003FFC00000001FFFF8000000FFFFFF000003FF00FFC00007F8001FE0001FE00007F8003FC
00003FC007F800001FE007F800001FE00FF000000FF01FE0000007F81FE0000007F83FE0000007
FC3FE0000007FC7FC0000003FE7FC0000003FE7FC0000003FE7FC0000003FEFFC0000003FFFFC0
000003FFFFC0000003FFFFC0000003FFFFC0000003FFFFC0000003FFFFC0000003FFFFC0000003
FFFFC0000003FFFFC0000003FF7FC0000003FE7FC0000003FE7FC0000003FE7FE0000007FE3FE0
000007FC3FE0000007FC1FE0000007F81FF000000FF80FF000000FF007F800001FE007FC00003F
E003FE00007FC001FF0000FF80007F8001FE00003FF00FFC00000FFFFFF0000003FFFFC0000000
3FFC0000302E7DAD37>111 D<00FF801FF80000FFFF80FFFF0000FFFF83FFFFC000FFFF8FC07F
FFFFFF0000000035427DAD3D>I<00FF007F00FFFF01FFC0FFFF03FFE0FFFF0787F003FF0E0FF0
01FF1C1FF801FF381FF801FF301FF801FF701FF801FF600FF001FF600FF001FFE003C001FFC000
0001FFC0000001FFC0000001FFC0000001FF80000001FF80000001FF80000001FF80000001FF80
000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF
80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001
FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF800000FFFFFFC000
FFFFFFC000FFFFFFC000252E7DAD2C>114 D<001FFC030000FFFF870003FFFFCF000FE007FF00
1F8000FF003E00003F003E00001F007C00001F007C00000F00FC00000F00FC00000700FC000007
00FE00000700FF00000700FF80000000FFE00000007FFE0000007FFFF800003FFFFF00003FFFFF
C0001FFFFFF0000FFFFFF80007FFFFFC0001FFFFFE00007FFFFF00001FFFFF000000FFFF800000
07FF80000000FFC0E000007FC0E000003FC0E000001FC0F000000FC0F000000FC0F800000FC0F8
00000FC0F800000F80FC00000F80FE00001F80FF00001F00FF80003E00FFC0007C00F9F803F800
F0FFFFF000E03FFFC000C007FE0000222E7CAD2B>I E /Fo 8 117 df<00003000000070000001
F0000007F000007FF000FFFFF000FFFFF000FF8FF000000FF000000FF000000FF000000FF00000
0FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000
000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0
00000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000F
F000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000
0FF0007FFFFFFE7FFFFFFE7FFFFFFE1F3779B62D>49 D<000000FFE0001800000FFFFC00180000
000000FFE00000353B7BB940>67 D<003FFC00000001FFFF80000007E00FE000000FC003F80000
0FE001FC00001FF001FE00001FF000FF00001FF000FF00001FF0007F00000FE0007F800007C000
7F80000000007F80000000007F80000000007F80000000007F80000000007F800000000FFF8000
0007FFFF8000003FE07F800001FF007F800007FC007F80000FF0007F80001FE0007F80003FE000
7F80007FC0007F80007FC0007F8380FF80007F8380FF80007F8380FF80007F8380FF8000BF8380
FF8000BF83807FC0013F83807FC0033F83803FE0061FC7001FF81C0FFE0007FFF007FC00007FC0
03F00029257DA42D>97 D<0003FF0000001FFFE000007F07F00001FC01FC0003F000FE0007E000
7F000FE0003F001FC0003F801FC0003F803FC0001FC03F80001FC07F80001FC07F80001FE07F80
001FE0FF80001FE0FF80001FE0FFFFFFFFE0FFFFFFFFE0FF80000000FF80000000FF80000000FF
80000000FF800000007F800000007F800000007F800000003FC00000003FC00000001FC00000E0
1FE00000E00FE00001C007F000038003F800070000FE000E00007FC07C00001FFFF0000001FF80
0023257EA428>101 D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC000000
F8FFFFF07FFFF82D3A7EB932>104 D<01FC03FE0000FFFC1FFFC000FFFC780FF000FFFDE003F8
0007FF8001FC0003FF0000FE0003FE0000FF0003FC00007F8003FC00007FC003FC00003FC003FC
00003FE003FC00003FE003FC00001FE003FC00001FE003FC00001FF003FC00001FF003FC00001F
F003FC00001FF003FC00001FF003FC00001FF003FC00001FF003FC00001FF003FC00001FF003FC
00001FE003FC00003FE003FC00003FE003FC00003FC003FC00003FC003FC00007F8003FC00007F
8003FE0000FF0003FF0001FE0003FF8003FC0003FDC007F80003FCF81FE00003FC3FFF800003FC
07FC000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000
0003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC
00000000FFFFF0000000FFFFF0000000FFFFF00000002C357EA432>112
D<01F80FC0FFF83FF0FFF870F8FFF8C1FC07F883FE03F983FE03F903FE03FB03FE03FA01FC03FA
00F803FA007003FE000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000
03FC000003FC000003FC000003FC000003FC0000FFFFF800FFFFF800FFFFF8001F257EA424>
114 D<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000003C0000
007C0000007C000000FC000000FC000001FC000003FC000007FC00001FFFFFC0FFFFFFC0FFFFFF
C003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC
000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
FC00E003FC00E003FC00E003FC00E003FC00E003FC00E003FC00E003FC00E001FC00C001FC01C0
01FE01C000FE0380007F8700001FFE000007F8001B357EB423>116 D E
/Fp 11 115 df<008003800F80F380038003800380038003800380038003800380038003800380
03800380038003800380038003800380038003800380038003800380038007C0FFFE0F217CA018
>49 D<03F8000C1E001007002007804007C07807C07803C07807C03807C0000780000780000700
000F00000E0000380003F000001C00000F000007800007800003C00003C00003E02003E07003E0
F803E0F803E0F003C04003C0400780200780100F000C1C0003F00013227EA018>51
D<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0F001E0F001
E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C00001C00001C00003
80000380300300780700780600700C002018001030000FC00013227EA018>57
D<FFC00003FF0FC00003F007C00003E005E00005E005E00005E004F00009E004F00009E004F000
09E004780011E004780011E004780011E0043C0021E0043C0021E0043C0021E0041E0041E0041E
0041E0040F0081E0040F0081E0040F0081E004078101E004078101E004078101E00403C201E004
03C201E00401E401E00401E401E00401E401E00400F801E00400F801E00400F801E004007001E0
0E007001E01F007003F0FFE0203FFF28227EA12D>77 D<03F0200C0C601802603001E07000E060
0060E00060E00060E00020E00020E00020F00000F000007800007F00003FF0001FFE000FFF0003
FF80003FC00007E00001E00000F00000F0000070800070800070800070800070C00060C00060E0
00C0F000C0C80180C6070081FC0014247DA21B>83 D<0FE0001838003C0C003C0E001807000007
0000070000070000FF0007C7001E07003C0700780700700700F00708F00708F00708F00F087817
083C23900FC1E015157E9418>97 D<01FE000703000C07801C0780380300780000700000F00000
F00000F00000F00000F00000F00000F000007000007800403800401C00800C010007060001F800
12157E9416>99 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18237FA2
1B>104 D<1C001E003E001E001C00000000000000000000000000000000000E00FE001E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA10E
>I<0E1F80FE60C01E80E00F00700F00700E00700E00700E00700E00700E00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18157F941B>110
D<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E00
0F00FFF010157F9413>114 D E /Fq 20 121 df<00003FC0020001FFF8060007E01C06001F00
070E003C00018E00780000DE00F000005E01E000003E03C000001E078000001E0F0000000E0F00
00000E1E000000061E000000063E000000063C000000027C000000027C000000027C0000000278
00000000F800000000F800000000F800000000F800000000F800000000F800000000F800000000
F800000000F800000000F80000000078000000007C000000007C000000027C000000023C000000
023E000000021E000000021E000000040F000000040F0000000C078000000803C000001801E000
001000F00000200078000040003C000180001F0003000007E01E000001FFF80000003FC0002732
7CB02F>67 D<FFFF80FFFF8007F00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00007F000FFFF80FFFF8011307DAF17>
73 D<FFF0000000FFF0FFF0000000FFF007F0000000FE0002F80000017C0002F80000017C0002
F80000017C00027C0000027C00027C0000027C00023E0000047C00023E0000047C00023E000004
7C00021F0000087C00021F0000087C00021F0000087C00020F8000107C00020F8000107C00020F
8000107C000207C000207C000207C000207C000207C000207C000203E000407C000203E000407C
000203E000407C000201F000807C000201F000807C000200F801007C000200F801007C000200F8
01007C0002007C02007C0002007C02007C0002007C02007C0002003E04007C0002003E04007C00
02003E04007C0002001F08007C0002001F08007C0002001F08007C0002000F90007C0002000F90
007C0002000F90007C00020007E0007C00020007E0007C00020003C0007C00020003C0007C0007
0003C0007C000F80018000FE00FFF801801FFFF0FFF801801FFFF034307CAF3C>77
D<FFFFFF8000FFFFFFF00007E000FC0003E0003E0003E0000F0003E000078003E00003C003E000
03E003E00003E003E00001E003E00001F003E00001F003E00001F003E00001F003E00001F003E0
0001F003E00001E003E00003E003E00003C003E00003C003E000078003E0000F0003E0003E0003
E000F80003FFFFE00003E000000003E000000003E000000003E000000003E000000003E0000000
03E000000003E000000003E000000003E000000003E000000003E000000003E000000003E00000
0003E000000003E000000003E000000003E000000003E000000003E000000007F0000000FFFF80
0000FFFF80000024307CAF2C>80 D<007F004001FFC0400780F0C00F0018C01C000DC03C0007C0
380003C0780001C0700001C0F00000C0F00000C0F00000C0F0000040F0000040F0000040F80000
40F80000007C0000007E0000003F0000003FE000001FFE00000FFFE00007FFF80001FFFE00007F
FF000007FF8000007F8000000FC0000007E0000003E0000003E0000001F0000001F0800000F080
0000F0800000F0800000F0800000F0C00000F0C00000E0E00001E0E00001E0F00001C0F8000380
EC000780C7000F00C1E03E0080FFF800801FE0001C327CB024>83 D<00FE0000070380000801E0
001000F0003C0078003E0078003E003C003E003C001C003C0000003C0000003C0000003C000007
FC00007C3C0003E03C0007803C001F003C003E003C003C003C007C003C0078003C08F8003C08F8
003C08F8003C08F8007C08F8007C087C00BC083E011E100F060FE003F807C01D1E7D9D20>97
D<018000003F800000FF800000FF8000000F800000078000000780000007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780000007
81F80007860700079803C007A000E007C000F007C00078078000380780003C0780003E0780001E
0780001E0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780001F078000
1E0780003E0780003C0780003C0780007807C00070074000F0072001C006100380060C0E000403
F80020317EB024>I<001FC00000F0380001C00400078002000F000F001E001F001E001F003C00
1F007C000E007C00000078000000F8000000F8000000F8000000F8000000F8000000F8000000F8
000000F8000000780000007C0000007C0000003C0000801E0000801E0001000F00010007800200
01C00C0000F03000001FC000191E7E9D1D>I<003F800000E0F0000380380007001C000E001E00
1E000E003C000F003C000F007C000F807800078078000780F8000780FFFFFF80F8000000F80000
00F8000000F8000000F8000000F800000078000000780000007C0000003C0000801C0000801E00
01000F0002000700020001C00C0000F03000001FC000191E7E9D1D>101
D<07000F801F801F800F8007000000000000000000000000000000000000000000000001801F80
FF80FF800F80078007800780078007800780078007800780078007800780078007800780078007
80078007800780078007800FC0FFF8FFF80D2F7EAE12>105 D<01803F80FF80FF800F80078007
800780078007800780078007800780078007800780078007800780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780078007
800FC0FFFCFFFC0E317EB012>108 D<0181FE003FC0003F860780C0F000FF8801C1003800FF90
01E2003C000FA000E4001C0007A000F4001E0007C000F8001E0007C000F8001E00078000F0001E
00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000
F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341E7E9D38>I<01
81FC003F860F00FF880380FF9003C00FA001C007C001E007C001E007C001E0078001E0078001E0
078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001
E0078001E0078001E0078001E0078001E0078001E0078001E0078001E00FC003F0FFFC3FFFFFFC
3FFF201E7E9D24>I<003FC00000E0700003801C0007000E000E0007001E0007803C0003C03C00
03C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F8
0001F0F80001F0780001E0780001E07C0003E03C0003C03C0003C01E0007800E00070007000E00
03801C0000E07000003FC0001C1E7E9D20>I<0181F8003F860F00FF9803C0FFA001E007C000F0
07C00078078000780780003C0780003E0780003E0780001E0780001F0780001F0780001F078000
1F0780001F0780001F0780001F0780001F0780001E0780003E0780003C0780003C0780007807C0
00F007C000F007A001C007900380078C0E000783F8000780000007800000078000000780000007
8000000780000007800000078000000780000007800000078000000FC00000FFFC0000FFFC0000
202C7E9D24>I<0183E03F8C18FF907CFF907C0FA07C07C03807C00007C00007C0000780000780
000780000780000780000780000780000780000780000780000780000780000780000780000780
000780000780000780000FC000FFFE00FFFE00161E7E9D19>114 D<03FC200E02603801E03000
E0600060E00060E00020E00020F00020F000207C00007F80003FFC001FFF0007FF8001FFE0000F
E00001F08000F8800078800038C00038C00038C00038E00030F00070F00060C800C0C6038081FE
00151E7E9D19>I<00400000400000400000400000400000C00000C00000C00001C00001C00003
C00007C0000FC0001FFFE0FFFFE003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003C00003C01003C01003C01003C01003C01003C01003
C01003C01001C02001E02000E0400078C0001F00142B7FAA19>I<018000603F800FE0FF803FE0
FF803FE00F8003E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001
E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E00780
03E0078003E0078003E0038005E003C009E001C019F000F021FF001FC1FF201E7E9D24>I<FFF0
07FE00FFF007FE000FE003F00003C003C00003E003000001E002000000F006000000F804000000
7C080000003C100000001E300000001F200000000FC0000000078000000003C000000003E00000
0003E000000004F00000000878000000187C000000103C000000201E000000400F000000C00F80
000180078000010003C000070003E0001F8003F000FFC00FFF80FFC00FFF80211E7F9D22>120
D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: A4

%%EndSetup
%%Page: 0 1
0 0 bop 831 1086 a Fq(Prop)r(osal)24 b(I)575 1178 y(MPI)f(Con)n(text)f(Sub)r
(committee)871 1360 y Fp(Marc)16 b(Snir)853 1481 y(Marc)o(h)g(1993)p
eop
%%Page: 1 2
1 1 bop 262 619 a Fo(Chapter)28 b(1)262 826 y Fn(Prop)s(osal)36
b(I)262 1042 y Fm(Editorial)17 b(Note:)24 b(This)18 b(chapter)g(is)f(the)h
(pr)n(op)n(osal)g(of)g(Mar)n(c)f(Snir)h(which)g(also)f(app)n(e)n(ars)262
1092 y(in)h(the)h(working)f(do)n(cuments)h(of)f(the)h(p)n(oint-to-p)n(oint)f
(sub)n(c)n(ommitte)n(e)g(\(Mar)n(ch)h(15\))g(and)262 1142 y(c)n(ol)r(le)n
(ctive)13 b(c)n(ommunic)n(ation)i(sub)n(c)n(ommitte)n(e)f(\(Mar)n(ch)g(16\).)
19 b(This)14 b(is)g(a)g(minor)g(e)n(dit)g(of)h(the)262 1191
y Fl(L)273 1186 y Fk(a)292 1191 y Fl(T)315 1204 y(E)338 1191
y(X)j Fm(sour)n(c)n(e)h(of)f(the)g(p)n(oint-to-p)n(oint)h(do)n(cument)g(pr)n
(ovide)n(d)g(by)f(Mar)n(c.)29 b(The)19 b(e)n(dit)f(was)262
1241 y(p)n(erforme)n(d)c(by)h(Lyndon)h(Clarke.)262 1378 y Fj(1.1)64
b(Con)n(texts)262 1469 y Fl(A)13 b Fi(con)o(text)g Fl(consists)i(of:)324
1552 y Fh(\017)20 b Fl(A)15 b(set)h(of)f(pro)q(cesses)j(that)d(curren)o(tly)h
(b)q(elong)f(to)f(the)i(con)o(text)g(\(p)q(ossibly)f(all)f(pro-)365
1602 y(cesses,)i(or)e(a)g(prop)q(er)g(subset\).)324 1685 y
Fh(\017)20 b Fl(A)15 b Fi(ranking)e Fl(of)h(the)h(pro)q(cesses)j(within)c
(that)h(con)o(text,)g(i.e.,)e(a)i(n)o(um)o(b)q(ering)e(of)h(the)365
1735 y(pro)q(cesses)e(in)d(that)h(con)o(text)g(from)e(0)h(to)g
Fg(n)p Fh(\000)p Fl(1,)i(where)g Fg(n)e Fl(is)g(the)h(n)o(um)o(b)q(er)f(of)g
(pro)q(cesses)365 1785 y(in)14 b(that)g(con)o(text.)324 1868
y(A)g(pro)q(cess)h(ma)o(y)d(b)q(elong)i(to)g(sev)o(eral)g(con)o(texts)h(at)f
(the)g(same)f(time.)324 1918 y(An)o(y)f(in)o(terpro)q(cess)h(comm)o
(unication)c(o)q(ccurs)k(within)e(a)h(con)o(text,)g(and)g(messages)g(sen)o(t)
262 1968 y(within)h(one)i(con)o(text)g(can)f(b)q(e)h(receiv)o(ed)h(only)e
(within)f(the)i(same)f(con)o(text.)20 b(A)15 b(con)o(text)g(is)262
2017 y(sp)q(eci\014ed)d(using)e(a)g Fm(c)n(ontext)i(hand)r(le)g
Fl(\(i.e.,)d(a)i(handle)f(to)g(an)h(opaque)f(ob)r(ject)i(that)e(iden)o
(ti\014es)262 2067 y(a)15 b(con)o(text\).)23 b(Con)o(text)15
b(handles)h(cannot)g(b)q(e)g(transferred)h(for)e(one)g(pro)q(cess)i(to)f
(another;)262 2117 y(they)e(can)g(b)q(e)h(used)f(only)f(on)h(the)h(pro)q
(cess)g(where)g(they)g(where)g(created.)324 2167 y(F)m(ollo)o(ws)d(examples)h
(of)g(p)q(ossible)h(uses)h(for)f(con)o(texts.)262 2283 y Ff(1.1.1)55
b(Lo)r(osely)17 b(sync)n(hronous)i(library)e(call)h(in)n(terface)262
2360 y Fl(Consider)g(the)g(case)h(where)g(a)e(parallel)g(application)f
(executes)k(a)d(\\parallel)g(call")f(to)i(a)262 2409 y(library)c(routine,)h
(i.e.,)f(where)j(all)d(pro)q(cesses)j(transfer)g(con)o(trol)e(to)g(the)g
(library)g(routine.)967 2574 y(1)p eop
%%Page: 2 3
2 2 bop 262 307 a Fl(If)14 b(the)i(library)f(w)o(as)g(dev)o(elop)q(ed)h
(separately)m(,)g(then)g(one)f(should)h(b)q(ew)o(are)g(of)f(the)h(p)q(ossib-)
262 357 y(ilit)o(y)d(that)j(the)g(library)f(co)q(de)h(ma)o(y)e(receiv)o(e)j
(b)o(y)e(mistak)o(e)f(messages)i(send)g(b)o(y)g(the)g(caller)262
407 y(co)q(de,)f(and)g(vice-v)o(ersa.)22 b(T)m(o)14 b(prev)o(en)o(t)i(suc)o
(h)f(o)q(ccurrence)j(one)d(migh)o(t)e(use)i(a)g(barrier)g(syn-)262
457 y(c)o(hronization)e(b)q(efore)h(and)f(after)h(the)g(parallel)e(library)h
(call.)k(Instead,)d(one)f(can)h(allo)q(cate)262 506 y(a)g(di\013eren)o(t)h
(con)o(text)g(to)f(the)h(library)m(,)d(th)o(us)j(prev)o(en)o(ting)g(un)o(w)o
(an)o(ted)f(in)o(terference.)21 b(No)o(w,)262 556 y(the)14
b(transfer)h(of)e(con)o(trol)h(to)f(the)i(library)e(need)i(not)f(b)q(e)g
(sync)o(hronized.)262 672 y Ff(1.1.2)55 b(F)-5 b(unctional)20
b(decomp)r(osition)e(and)j(mo)r(dular)e(co)r(de)h(dev)n(el-)433
731 y(opmen)n(t)262 807 y Fl(Often,)d(a)f(parallel)f(application)g(is)i(dev)o
(elop)q(ed)g(b)o(y)f(in)o(tegrating)g(sev)o(eral)h(distinct)g(func-)262
857 y(tional)f(mo)q(dules,)h(that)h(is)g(eac)o(h)g(dev)o(elop)q(ed)h
(separately)m(.)30 b(Eac)o(h)18 b(mo)q(dule)f(is)g(a)h(parallel)262
907 y(program)c(that)j(runs)g(on)f(a)g(dedicated)h(set)h(of)d(pro)q(cesses,)
20 b(and)c(the)h(computation)e(con-)262 957 y(sists)10 b(of)g(phases)h(where)
g(mo)q(dules)e(compute)h(separately)m(,)g(in)o(termixed)f(with)h(global)f
(phases)262 1006 y(where)h(all)f(pro)q(cesses)k(comm)o(uni)o(cate.)i(It)10
b(is)f(con)o(v)o(enien)o(t)i(to)e(allo)o(w)g(eac)o(h)h(mo)q(dule)e(to)i(use)h
(its)262 1056 y(o)o(wn)h(priv)n(ate)h(pro)q(cess)i(n)o(um)o(b)q(ering)d(sc)o
(heme,)h(for)g(the)g(in)o(tramo)q(dule)f(computation.)k(This)262
1106 y(is)11 b(ac)o(hiev)o(ed)g(b)o(y)g(using)g(a)g(priv)n(ate)g(mo)q(dule)f
(con)o(text)i(for)f(in)o(tramo)q(dule)e(computation,)h(and)262
1156 y(a)j(global)f(con)o(text)j(for)e(in)o(termo)q(dule)g(comm)o(unication.)
262 1272 y Ff(1.1.3)55 b(Collectiv)n(e)16 b(comm)n(unication)262
1349 y Fl(MPI)g(supp)q(orts)i(collectiv)o(e)f(comm)o(unication)c(within)j
(dynamically)e(created)k(groups)f(of)262 1399 y(pro)q(cesses.)37
b(Eac)o(h)19 b(suc)o(h)h(group)f(can)h(b)q(e)g(represen)o(ted)i(b)o(y)d(a)g
(distinct)h(con)o(text.)35 b(This)262 1448 y(pro)o(vides)18
b(a)g(simple)f(mec)o(hanism)f(to)i(ensure)h(that)g(comm)o(unicati)o(on)c
(that)k(p)q(ertains)g(to)262 1498 y(collectiv)o(e)13 b(comm)o(unicati)o(on)d
(within)j(one)g(group)g(is)g(not)g(confused)h(with)f(collectiv)o(e)g(com-)262
1548 y(m)o(unication)e(within)i(another)i(group.)262 1664 y
Ff(1.1.4)55 b(Ligh)n(t)n(w)n(eigh)n(t)19 b(gang)g(sc)n(heduling)262
1741 y Fl(Consider)14 b(an)f(en)o(vironmen)o(t)g(where)i(pro)q(cesses)h(are)f
(m)o(ultith)o(treaded.)i(Con)o(texts)d(can)g(b)q(e)262 1791
y(used)19 b(to)g(pro)o(vide)f(a)g(mec)o(hanism)f(whereb)o(y)i(all)f(pro)q
(cesses)j(are)e(time-shared)f(b)q(et)o(w)o(een)262 1840 y(sev)o(eral)d
(parallel)e(executions,)j(and)e(can)h(con)o(text)h(switc)o(h)f(from)d(one)j
(parallel)f(execution)262 1890 y(to)k(another,)h(in)f(a)g(lo)q(osely)g(sync)o
(hronous)h(manner.)31 b(A)19 b(thread)g(is)f(allo)q(cated)g(on)g(eac)o(h)262
1940 y(pro)q(cess)h(to)f(eac)o(h)g(parallel)e(execution,)j(and)f(a)f
(di\013eren)o(t)i(con)o(text)g(is)e(used)i(to)e(iden)o(tify)262
1990 y(eac)o(h)h(parallel)e(execution.)29 b(Th)o(us,)19 b(tra\016c)e(from)f
(one)i(execution)g(cannot)g(b)q(e)g(confused)262 2040 y(with)f(tra\016c)g
(from)f(another)i(execution.)30 b(The)17 b(blo)q(c)o(king)g(and)g(un)o(blo)q
(c)o(king)g(of)g(threads)262 2089 y(due)h(to)f(comm)o(unication)e(ev)o(en)o
(ts)k(pro)o(vide)e(a)h(\\lazy")e(con)o(text)j(switc)o(hing)e(mec)o(hanism.)
262 2139 y(This)g(can)h(b)q(e)g(extended)i(to)d(the)i(case)f(where)h(the)f
(parallel)f(executions)i(are)f(spanning)262 2189 y(distinct)c(pro)q(cess)h
(subsets.)20 b(\(MPI)14 b(do)q(es)h(not)f(require)h(m)o(ultithreaded)d(pro)q
(cesses.\))262 2326 y Fe(Discussion:)46 b Fd(A)16 b(con)o(text)h(handle)h
(migh)o(t)f(b)q(e)g(implemen)o(ted)i(as)d(a)g(p)q(oin)o(ter)i(to)e(a)h
(structure)262 2372 y(that)f(consists)h(of)f(con)o(text)h(lab)q(el)h(\(that)e
(is)h(carried)g(b)o(y)f(messages)h(sen)o(t)f(within)i(this)f(con)o(text\))262
2417 y(and)10 b(a)h(con)o(text)f(mem)o(b)q(er)h(table,)h(that)e(translates)i
(pro)q(cess)f(ranks)g(within)h(a)e(con)o(text)h(to)f(absolute)967
2574 y Fl(2)p eop
%%Page: 3 4
3 3 bop 262 307 a Fd(addresses)16 b(or)g(to)g(routing)h(information.)27
b(Of)15 b(course,)i(other)f(implemen)o(tations)j(are)c(p)q(ossible,)262
353 y(including)f(implemen)o(tation)q(s)g(that)e(do)g(not)f(require)i(eac)o
(h)f(con)o(text)g(mem)o(b)q(er)g(to)f(store)h(a)g(full)g(list)262
399 y(of)g(the)h(con)o(text)h(mem)o(b)q(ers.)324 444 y(Con)o(texts)k(can)g(b)
q(e)g(used)g(only)h(on)f(the)g(pro)q(cess)h(where)e(they)h(w)o(ere)g
(created.)31 b(Since)19 b(the)262 490 y(con)o(text)d(carries)g(information)i
(on)e(the)f(group)i(of)e(pro)q(cesses)h(that)g(b)q(elong)h(to)f(this)g(con)o
(text,)g(a)262 535 y(pro)q(cess)g(can)g(send)g(a)f(message)i(within)g(a)e
(con)o(text)h(only)h(to)e(other)h(pro)q(cesses)h(that)e(b)q(elong)j(to)262
581 y(that)13 b(con)o(text.)18 b(Th)o(us,)c(eac)o(h)f(pro)q(cess)h(needs)g
(to)g(k)o(eep)f(trac)o(k)h(only)h(of)e(the)g(con)o(texts)h(that)f(where)262
627 y(created)f(at)h(that)f(pro)q(cess;)h(the)g(total)g(n)o(um)o(b)q(er)g(of)
g(con)o(texts)g(p)q(er)f(pro)q(cess)i(is)f(lik)o(ely)h(to)f(b)q(e)f(small.)
324 672 y(The)d(only)i(di\013erence)h(I)d(see)g(b)q(et)o(w)o(een)h(this)h
(curren)o(t)f(de\014nition)i(of)d(con)o(text,)i(whic)o(h)f(subsumes)262
718 y(the)16 b(group)h(concept,)g(and)g(a)f(pared)h(do)o(wn)f(de\014nition,)j
(if)d(that)h(I)e(assume)i(here)f(that)h(pro)q(cess)262 764
y(n)o(um)o(b)q(ering)12 b(is)g(relativ)o(e)g(to)f(the)g(con)o(text,)g(rather)
g(then)h(b)q(eing)g(global,)h(th)o(us)e(requiring)i(a)e(con)o(text)262
809 y(mem)o(b)q(er)e(table.)17 b(I)9 b(argue)h(that)f(this)h(is)g(not)f(m)o
(uc)o(h)h(added)g(o)o(v)o(erhead,)h(and)f(giv)o(es)g(m)o(uc)o(h)g(additional)
262 855 y(needed)k(functionalit)o(y)m(.)325 917 y Fc(\017)21
b Fd(If)16 b(a)g(new)g(con)o(text)g(is)h(created)f(b)o(y)h(cop)o(ying)h(a)e
(previous)i(con)o(text,)f(then)f(one)h(do)q(es)f(not)365 963
y(need)d(a)f(new)f(mem)o(b)q(er)i(table;)g(rather,)f(one)g(needs)h(just)e(a)h
(new)g(con)o(text)g(lab)q(el)i(and)f(a)f(new)365 1009 y(p)q(oin)o(ter)17
b(to)e(the)g(same)g(old)h(con)o(text)f(mem)o(b)q(er)h(table.)23
b(This)16 b(holds)h(true,)e(in)h(particular,)365 1054 y(for)d(con)o(texts)h
(that)f(include)i(all)g(pro)q(cesses.)325 1117 y Fc(\017)21
b Fd(A)10 b(con)o(text)h(mem)o(b)q(er)g(table)g(mak)o(es)g(sure)g(that)g(a)f
(message)h(is)g(sen)o(t)g(only)g(to)g(a)f(pro)q(cess)h(that)365
1162 y(can)16 b(execute)f(in)h(the)f(con)o(text)g(of)f(the)h(message.)23
b(The)15 b(alternativ)o(e)i(mec)o(hanism,)g(whic)o(h)365 1208
y(is)c(c)o(hec)o(king)h(at)e(reception,)i(is)f(less)g(e\016cien)o(t,)g(and)g
(requires)h(that)e(eac)o(h)h(con)o(text)g(lab)q(el)h(b)q(e)365
1254 y(system-wide)h(unique.)21 b(This)15 b(requires)g(that,)f(to)g(the)g
(least,)g(all)i(pro)q(cesses)e(in)h(a)f(con)o(text)365 1299
y(execute)g(a)f(collectiv)o(e)i(agreemen)o(t)f(algorithm)h(at)e(the)g
(creation)h(of)f(this)h(con)o(text.)325 1362 y Fc(\017)21 b
Fd(The)c(use)h(of)e(relativ)o(e)j(addressing)g(within)g(eac)o(h)e(con)o(text)
h(is)f(needed)h(to)f(supp)q(ort)h(true)365 1407 y(mo)q(dular)e(dev)o(elopmen)
o(t)f(of)f(sub)q(computations)j(that)d(execute)g(on)g(a)g(subset)h(of)e(the)h
(pro-)365 1453 y(cesses.)26 b(There)16 b(is)g(also)h(a)e(big)i(adv)n(an)o
(tage)g(in)g(using)g(the)f(same)g(con)o(text)g(construct)h(for)365
1499 y(collectiv)o(e)f(comm)o(unications)g(as)d(w)o(ell.)262
1802 y Fj(1.2)64 b(Con)n(text)22 b(Op)r(erations)262 1893 y
Fl(A)13 b(global)f(con)o(text)j Fi(ALL)e Fl(is)g(prede\014ned.)20
b(All)13 b(pro)q(cesses)j(b)q(elong)e(to)f(this)h(con)o(text)g(when)262
1943 y(computation)i(starts.)30 b(MPI)18 b(do)q(es)h(not)f(sp)q(ecify)g(ho)o
(w)f(pro)q(cesses)k(are)d(initially)d(rank)o(ed)262 1992 y(within)k(the)h
(con)o(text)g(ALL.)g(It)f(is)h(exp)q(ected)i(that)e(the)g(start-up)g(pro)q
(cedure)i(used)f(to)262 2042 y(initiate)c(an)h(MPI)g(program)f(\(at)h
(load-time)e(or)i(run-time\))g(will)e(pro)o(vide)j(information)262
2092 y(or)c(con)o(trol)g(on)g(this)g(initial)e(ranking)i(\(e.g.,)f(b)o(y)h
(sp)q(ecifying)g(that)h(pro)q(cesses)i(are)d(rank)o(ed)262
2142 y(according)e(to)g(their)g(pid's,)g(or)g(according)g(to)g(the)h(ph)o
(ysical)e(addresses)k(of)c(the)i(executing)262 2192 y(pro)q(cessors,)h(or)f
(according)g(to)g(a)f(n)o(um)o(b)q(ering)g(sc)o(heme)h(sp)q(eci\014ed)h(at)f
(load)f(time\).)262 2341 y Fe(Discussion:)18 b Fd(If)c(w)o(e)g(think)i(of)e
(adding)j(new)d(pro)q(cesses)i(at)e(run-time,)i(then)f Fb(ALL)e
Fd(con)o(v)o(eys)i(the)262 2391 y(wrong)e(impression,)i(since)f(it)f(is)h
(just)f(the)g(initial)j(set)d(of)g(pro)q(cesses.)967 2574 y
Fl(3)p eop
%%Page: 4 5
4 4 bop 324 407 a Fl(The)14 b(follo)o(wing)d(op)q(erations)k(are)f(a)o(v)n
(ailable)d(for)j(creating)g(new)h(con)o(texts.)262 506 y Fi(MPI)p
361 506 15 2 v 17 w(COPY)p 517 506 V 17 w(CONTEXT\(new)o(con)o(text,)g(con)o
(text\))324 556 y Fl(Create)d(a)e(new)h(con)o(text)h(that)f(includes)g(all)e
(pro)q(cesses)14 b(in)c(the)i(old)e(con)o(text.)17 b(The)12
b(rank)262 606 y(of)f(the)i(pro)q(cesses)i(in)d(the)g(previous)h(con)o(text)g
(is)f(preserv)o(ed.)20 b(The)12 b(call)g(m)o(ust)f(b)q(e)i(executed)262
656 y(b)o(y)f(all)f(pro)q(cesses)k(in)d(the)h(old)f(con)o(text.)18
b(It)13 b(is)f(a)g(blo)q(c)o(king)g(call:)k(No)d(call)e(returns)j(un)o(til)e
(all)262 706 y(pro)q(cesses)k(ha)o(v)o(e)e(called)f(the)i(function.)j(The)c
(parameters)g(are)262 797 y Fi(OUT)h(new)o(con)o(text)k Fl(handle)e(to)g
(newly)f(created)j(con)o(text.)28 b(The)17 b(handle)g(should)g(not)365
847 y(b)q(e)e(asso)q(ciated)f(with)g(an)g(ob)r(ject)g(b)q(efore)h(the)f
(call.)262 930 y Fi(IN)i(con)o(text)j Fl(handle)14 b(to)g(old)f(con)o(text)
262 1108 y Fe(Discussion:)49 b Fd(I)17 b(considered)j(adding)f(a)e(string)h
(parameter,)h(to)e(pro)o(vide)i(a)e(unique)i(iden)o(ti-)262
1154 y(\014er)13 b(to)g(the)g(next)h(con)o(text.)k(But,)13
b(in)h(an)g(en)o(vironmen)o(t)h(where)e(pro)q(cesses)h(are)g(single)h
(threaded,)262 1200 y(this)c(is)g(not)g(m)o(uc)o(h)g(help:)17
b(Either)11 b(all)h(pro)q(cesses)g(agree)f(on)f(the)h(order)g(they)g(create)g
(new)f(con)o(texts,)262 1245 y(or)j(the)h(application)i(deadlo)q(c)o(ks.)21
b(A)13 b(k)o(ey)h(ma)o(y)f(help)i(in)f(an)g(en)o(vironmen)o(t)h(where)f(pro)q
(cesses)g(are)262 1291 y(m)o(ultithreaded,)20 b(to)c(distinguis)q(h)k(call)e
(from)e(distinct)j(threads)e(of)g(the)g(same)g(pro)q(cess;)i(but)e(it)262
1337 y(migh)o(t)c(b)q(e)h(simpler)g(to)f(use)h(a)f(m)o(utex)g(algorithm)i(at)
e(eac)o(h)g(pro)q(cess.)324 1386 y Fe(Implemen)o(tation)j(note:)24
b Fd(No)16 b(comm)o(unication)j(is)d(needed)i(to)e(create)g(a)g(new)g(con)o
(text,)262 1436 y(b)q(ey)o(ond)j(a)f(barrier)i(sync)o(hronization;)k(all)19
b(pro)q(cesses)g(can)g(agree)f(to)h(use)f(the)h(same)f(naming)262
1486 y(sc)o(heme)c(for)g(successiv)o(e)h(copies)g(of)f(the)g(same)g(con)o
(text.)20 b(Also,)15 b(no)f(new)g(rank)g(table)h(is)g(needed,)262
1536 y(just)d(a)h(new)g(con)o(text)h(lab)q(el)h(and)e(a)g(new)g(p)q(oin)o
(ter)i(to)e(the)g(same)g(old)h(table.)262 1735 y Fi(MPI)p 361
1735 V 17 w(NEW)p 495 1735 V 18 w(CONTEXT\(new)o(con)o(text,)h(con)o(text,)g
(k)o(ey)l(,)h(index\))262 1826 y(OUT)f(new)o(con)o(text)k Fl(handle)e(to)g
(newly)g(created)i(con)o(text)f(at)f(calling)f(pro)q(cess.)30
b(This)365 1876 y(handle)14 b(should)g(not)g(b)q(e)g(asso)q(ciated)h(with)e
(an)h(ob)r(ject)h(b)q(efore)f(the)h(call.)262 1959 y Fi(IN)h(con)o(text)j
Fl(handle)14 b(to)g(old)f(con)o(text)262 2042 y Fi(IN)j(k)o(ey)21
b Fl(in)o(teger)262 2125 y Fi(IN)16 b(index)j Fl(in)o(teger)324
2217 y(A)11 b(new)h(con)o(text)g(is)f(created)i(for)e(eac)o(h)g(distinct)h(v)
n(alue)f(of)f Fa(key)p Fl(;)h(this)h(con)o(text)g(is)f(shared)262
2267 y(b)o(y)j(all)g(pro)q(cesses)k(that)d(made)f(the)h(call)g(with)f(this)i
(k)o(ey)f(v)n(alue.)21 b(Within)13 b(eac)o(h)j(new)g(con-)262
2316 y(text)g(the)h(pro)q(cesses)h(are)f(rank)o(ed)f(according)g(to)g(the)g
(order)h(of)e(the)i Fa(index)d Fl(v)n(alues)i(they)262 2366
y(pro)o(vided;)c(in)g(case)i(of)e(ties,)h(pro)q(cesses)j(are)d(rank)o(ed)g
(according)g(to)g(their)g(rank)g(in)f(the)h(old)262 2416 y(con)o(text.)967
2574 y(4)p eop
%%Page: 5 6
5 5 bop 324 307 a Fl(This)16 b(call)f(is)h(blo)q(c)o(king:)22
b(No)16 b(call)g(returns)i(un)o(til)d(all)g(pro)q(cesses)k(in)d(the)g(old)g
(con)o(text)262 357 y(executed)f(the)g(call.)324 407 y(P)o(articular)e(uses)j
(of)d(this)h(function)f(are:)324 457 y(\(i\))19 b(Reordering)h(pro)q(cesses:)
33 b(All)19 b(pro)q(cesses)k(pro)o(vide)d(the)g(same)f Fa(key)g
Fl(v)n(alue,)i(and)262 506 y(pro)o(vide)13 b(their)i(index)e(in)h(the)g(new)h
(order.)324 556 y(\(ii\))i(Splitting)g(a)g(con)o(text)i(in)o(to)e(sub)q(con)o
(texts,)k(while)c(preserving)i(the)g(old)e(relativ)o(e)262
606 y(order)11 b(among)e(pro)q(cesses:)19 b(All)9 b(pro)q(cesses)14
b(pro)o(vide)c(the)i(same)d Fa(index)h Fl(v)n(alue,)g(and)h(pro)o(vide)262
656 y(a)i(k)o(ey)h(iden)o(tifying)e(their)j(new)f(sub)q(con)o(text.)262
756 y Fi(MPI)p 361 756 15 2 v 17 w(RANK\(rank,)i(con)o(text\))262
836 y(OUT)f(rank)21 b Fl(in)o(teger)262 914 y Fi(IN)16 b(con)o(text)j
Fl(con)o(text)c(handle)324 994 y(Return)f(the)h(rank)e(of)h(the)g(calling)f
(pro)q(cess)i(within)f(the)g(sp)q(eci\014ed)h(con)o(text.)262
1094 y Fi(MPI)p 361 1094 V 17 w(SIZE\(size,)g(con)o(text\))262
1174 y(OUT)g(size)20 b Fl(in)o(teger)262 1252 y Fi(IN)c(con)o(text)j
Fl(con)o(text)c(handle)324 1333 y(Return)f(the)h(n)o(um)o(b)q(er)e(of)g(pro)q
(cesses)k(that)d(b)q(elong)f(to)h(the)g(sp)q(eci\014ed)i(con)o(text.)262
1447 y Ff(1.2.1)55 b(Usage)18 b(note)262 1523 y Fl(Use)c(of)f(con)o(texts)i
(for)e(libraries:)k(Eac)o(h)d(library)f(ma)o(y)f(pro)o(vide)h(an)h
(initialization)c(routine)262 1573 y(that)k(is)g(to)h(b)q(e)g(called)f(b)o(y)
g(all)g(pro)q(cesses,)j(and)d(that)g(generate)i(a)e(con)o(text)i(for)e(the)h
(use)g(of)262 1623 y(that)e(library)m(.)324 1673 y(Use)j(of)g(con)o(texts)g
(for)g(functional)f(decomp)q(osition:)20 b(A)c(harness)h(program,)d(running)
262 1723 y(in)f(the)i(con)o(text)g Fa(ALL)f Fl(generates)i(a)e(sub)q(con)o
(text)h(for)f(eac)o(h)h(mo)q(dule)e(and)h(then)h(starts)g(the)262
1773 y(submo)q(dule)d(within)i(the)g(corresp)q(onding)h(con)o(text.)324
1822 y(Use)g(of)f(con)o(texts)i(for)e(collectiv)o(e)g(comm)o(unication:)i(A)e
(con)o(text)i(is)e(created)i(for)e(eac)o(h)262 1872 y(group)f(of)h(pro)q
(cesses)i(where)f(collectiv)o(e)f(comm)o(unication)c(is)k(to)g(o)q(ccur.)324
1922 y(Use)i(of)f(con)o(texts)i(for)e(con)o(text-switc)o(hing)h(among)d(sev)o
(eral)k(parallel)d(executions:)23 b(A)262 1972 y(pream)o(ble)15
b(co)q(de)j(is)f(used)g(to)g(generate)h(a)f(di\013eren)o(t)h(con)o(text)f
(for)g(eac)o(h)g(execution;)i(this)262 2022 y(pream)o(ble)8
b(co)q(de)j(needs)g(to)e(use)i(a)e(m)o(utual)f(exclusion)i(proto)q(col)f(to)h
(mak)o(e)e(sure)j(eac)o(h)f(thread)262 2071 y(claims)i(the)i(righ)o(t)g(con)o
(text.)262 2208 y Fe(Discussion:)30 b Fd(If)10 b(pro)q(cess)h(handles)h(are)e
(made)h(explicit)i(in)e(MPI,)f(then)h(an)f(additional)k(function)262
2254 y(needed)d(is)g Fe(MPI)p 515 2254 14 2 v 15 w(PR)o(OCESS\(pro)q(cess,)i
(con)o(text,)g(rank\))p Fd(,)e(whic)o(h)g(returns)g(a)f(handle)i(to)e(the)262
2300 y(pro)q(cess)j(iden)o(ti\014ed)j(b)o(y)d(the)g Fb(rank)f
Fd(and)h Fb(context)d Fd(parameters.)324 2350 y(A)e(p)q(ossible)j(addition)g
(is)f(a)f(function)h(of)e(the)h(form)f Fe(MPI)p 1136 2350 V
16 w(CREA)l(TE)p 1335 2350 V 17 w(CONTEXT\(new)o(con)o(text,)262
2399 y(list)p 325 2399 V 15 w(of)p 376 2399 V 15 w(pro)q(cess)p
531 2399 V 17 w(handles\))j Fd(whic)o(h)i(creates)f(a)f(new)h(con)o(text)g
(out)g(of)g(an)g(explicit)i(list)f(of)f(mem-)262 2449 y(b)q(ers)k(\(and)g
(rank)h(them)f(in)h(their)g(order)f(of)g(o)q(ccurrence)h(in)f(the)g(list\).)
27 b(This,)17 b(coupled)h(with)e(a)967 2574 y Fl(5)p eop
%%Page: 6 7
6 6 bop 262 307 a Fd(mec)o(hanism)13 b(for)e(requiring)j(the)e(spa)o(wning)h
(of)e(new)h(pro)q(cesses)g(to)g(the)g(computation,)h(will)g(allo)o(w)262
357 y(to)g(create)g(a)g(new)h(all)g(inclusiv)o(e)i(con)o(text)e(that)g
(includes)h(the)f(additional)i(pro)q(cesses.)j(Ho)o(w)o(ev)o(er,)262
407 y(I)12 b(opp)q(ose)j(the)e(idea)h(of)f(requiring)j(dynamic)f(pro)q(cess)f
(creation)g(as)g(part)f(of)g(MPI.)g(Man)o(y)h(imple-)262 457
y(men)o(ters)g(w)o(an)o(t)g(to)g(run)g(MPI)g(in)h(an)f(en)o(vironmen)o(t)i
(where)e(pro)q(cesses)i(are)e(statically)i(allo)q(cated)262
506 y(at)c(load-time.)967 2574 y Fl(6)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF

----------------------------------------------------------------------

         /--------------------------------------------------------\
    e||) | Lyndon J Clarke    Edinburgh Parallel Computing Centre | e||) 
    c||c | Tel: 031 650 5021  Email: [email-masked]  | c||c 
         \--------------------------------------------------------/