Subject: revised draft (6/24/93)

From: Tony Skjellum <[email-masked]>
Date: Wed, 23 Jun 93 23:07:33 CDT

Please ignore draft from earlier today, and read our new one.
- Tony, Mark, Lyndon

%!PS-Adobe-2.0
%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
%%Title: unify2.dvi
%%Pages: 12 1
%%BoundingBox: 0 0 612 792
%%EndComments
%%BeginProcSet: tex.pro
/TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 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}N /eop{clear SI restore
showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
/rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
/j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{clear SS restore}B end
%%EndProcSet
TeXDict begin 1000 300 300 @start /Fa 15 86 df<FFF800FFFE00FFFF001C0F001C0380
1C03801C03801C03801C07001C3F001FFE001FFE001FFF001C07001C03801C03801C03801C0380
1C07801C0F00FFFF00FFFE00FFFC001117809614>66 D<07E60FFE1FFE3E3E3C1E780E700EF00E
E000E000E000E000E000E000E000F00E700E780E3C1E3E3C1FF80FF807E00F177E9614>I<FFFF
80FFFF80FFFF801C03801C03801C03801C03801C00001C38001C38001FF8001FF8001FF8001C38
001C38001C00001C01C01C01C01C01C01C01C0FFFFC0FFFFC0FFFFC01217809614>69
D<07E6000FFE001FFE003E3E003C1E00780E00700E00F00E00E00000E00000E00000E00000E07F
80E07F80E07F80F00E00700E00781E003C1E003E3E001FFE000FFE0007EE0011177F9614>71
D<FFFEFFFEFFFE0380038003800380038003800380038003800380038003800380038003800380
0380FFFEFFFEFFFE0F177E9614>73 D<FE7FFE7FFE7F383C387838F038F039E03BC03B803FC03F
C03FE03EE03CF0387038783838383C383CFE3FFE3FFE3F10177F9614>75
D<FFC000FFC000FFC0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00
001C00001C00001C00001C03801C03801C03801C0380FFFF80FFFF80FFFF8011177F9614>I<FE
0FE0FE0FE0FE0FE03B1B803B1B803B1B803B1B803BBB803BBB8039B38039B38039B38039F38038
E38038E380380380380380380380380380380380FE0FE0FE0FE0FE0FE01317809614>I<FE3F80
FE3F80FE3F803B0E003B0E003B0E003B0E003B8E00398E00398E0039CE0039CE0039CE0038CE00
38CE0038EE00386E00386E00386E00386E00FE3E00FE3E00FE3E0011177F9614>I<1FF07FFC7F
FC701CF01EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EF01E783C7FFC7FFC
1FF00F177E9614>I<FFF800FFFE00FFFF001C0F001C07801C03801C03801C03801C03801C0780
1C0F001FFF001FFE001FF8001C00001C00001C00001C00001C00001C0000FF8000FF8000FF8000
1117809614>I<FFE000FFF000FFF800383C00381E00380E00380E00380E00381E00383C003FF8
003FF0003FF800387C00381C00381C00381C00381C00381DC0381DC0FE1FC0FE0FC0FE07801217
7F9614>82 D<0FCC3FFC7FFCF87CF03CE01CE01CF000F8007F003FE01FF801FC003C001E000EE0
0EE00EF01EF83CFFFCFFF8CFE00F177E9614>I<FFFF80FFFF80FFFF80E1C380E1C380E1C380E1
C38001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C0000FF8000FF8000FF80011177F9614>I<FF8FF8FF8FF8FF8FF81C01C01C01C01C01C01C01C0
1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01E03C00E03800F8F80
07FF0003FE0000F8001517819614>I E /Fb 3 104 df<7078F87005047C830C>46
D<03F00FF81E38381878387078FFF0FFC0E000E000E000E018E03870F03FE01F800D107C8F12>
101 D<00FB8003FF80079F800E0F001E07001C0F003C0F00380E00380E00381E00381E00381C00
383C003CFC001FFC000FB800003800007800007800E0F000E1F000FFC000FF000011177E8F12>
103 D E /Fc 1 59 df<F0F0F0F004047D830B>58 D E /Fd 1 16 df<07E01FF83FFC7FFE7FFE
FFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E010107E9115>15 D
E /Fe 32 119 df<000FF800007FFC0001FC1E0003F01F0007E03F000FE03F000FC03F000FC03F
000FC00C000FC000000FC000000FC000000FC00000FFFFFF00FFFFFF000FC03F000FC03F000FC0
3F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000F
C03F000FC03F000FC03F000FC03F000FC03F000FC03F007FF0FFE07FF0FFE01B237FA21F>12
D<7CFEFEFEFEFE7C07077C8610>46 D<00180000780001F800FFF800FFF80001F80001F80001F8
0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
0001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C9F1C
>49 D<03FC001FFF803C1FC0700FE0FC07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003F8
0003F00007F00007E0000FC0000F80001F00003E00007C0000F80001F01801C018038018070018
0E00381FFFF03FFFF07FFFF0FFFFF0FFFFF0FFFFF015207D9F1C>I<01FF0007FFC01F07E01E03
F03F03F83F01F83F81F83F01F83F03F80E03F80003F00007F0000FE0001F8001FF0001FF000007
E00003F80001FC0000FC0000FE0000FE7C00FEFE00FEFE00FEFE00FEFE00FCFE01FC7803F83E07
F01FFFE003FF0017207E9F1C>I<0000E00001E00003E00003E00007E0000FE0001FE0001FE000
37E00077E000E7E001C7E00187E00307E00707E00E07E00C07E01807E03807E07007E0E007E0FF
FFFEFFFFFE0007E00007E00007E00007E00007E00007E00007E000FFFE00FFFE17207E9F1C>I<
1800601E03E01FFFE01FFFC01FFF801FFF001FFC001BE00018000018000018000018000019FE00
1FFF801F0FC01C07E01803F00003F00003F80003F80003F87803F8FC03F8FC03F8FC03F8FC03F8
FC03F06007F0780FE03C1FC01FFF0007FC0015207D9F1C>I<003FC001FFE003F07007C0F80F81
F81F01F83E01F83E01F87E00F07C00007C0000FC0800FCFFC0FDFFF0FF81F8FF00F8FE007CFE00
7CFE007EFC007EFC007EFC007EFC007E7C007E7C007E7E007E3E007C3E00FC1F01F80FC3F007FF
C000FF0017207E9F1C>I<6000007800007FFFFE7FFFFE7FFFFE7FFFFC7FFFF87FFFF0E000E0E0
00C0C001C0C00380C00700000E00000E00001C00003C0000380000780000780000F80000F00001
F00001F00001F00001F00003F00003F00003F00003F00003F00003F00003F00001E00017227DA1
1C>I<01FF0007FFC01F83E03F01F07E00F87C00F8FC007CFC007CFC007CFC007EFC007EFC007E
FC007EFC00FE7C00FE7C00FE3E01FE3F03FE1FFF7E07FE7E00207E00007C00007C1E00FC3F00F8
3F00F83F01F03F03F03E07E01E1FC00FFF0003F80017207E9F1C>57 D<0007FE0180003FFFC380
00FF01E78003FC007F8007F0001F800FE0000F801FC0000F801F800007803F800003807F000003
807F000003807F00000180FE00000180FE00000000FE00000000FE00000000FE00000000FE0000
0000FE00000000FE00000000FE00000000FE000000007F000001807F000001807F000001803F80
0003801F800003001FC00007000FE0000E0007F0001C0003FC00380000FF01F000003FFFC00000
07FF000021227DA128>67 D<0003FF00C0003FFFE1C000FF80F3C001FC003FC007F0001FC00FE0
000FC01FC00007C01F800003C03F800001C07F000001C07F000001C07F000000C0FE000000C0FE
00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000FFFFC
FE000FFFFC7F00001FC07F00001FC07F00001FC03F80001FC01F80001FC01FC0001FC00FE0001F
C007F0003FC001FC003FC000FF80FFC0003FFFE3C00003FF00C026227DA12C>71
D<FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F0000007F0001807F0001807F0001807F0001807F0003807F0003807F0007007F00070
07F000F007F001F007F007F0FFFFFFF0FFFFFFF01D227EA122>76 D<0007FC0000003FFF800000
FC07E00003F001F80007E000FC000FC0007E001F80003F001F80003F003F00001F803F00001F80
7F00001FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F
E0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F0000
1F803F80003F801F80003F000FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007
FC000023227DA12A>79 D<FFFFFF00FFFFFFE007F007F007F001FC07F000FC07F0007E07F0007E
07F0007F07F0007F07F0007F07F0007F07F0007F07F0007E07F0007E07F000FC07F001FC07F007
F007FFFFE007FFFF0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF800020227EA126>I<07FE
001FFF803F0FC03F07E03F07F03F03F01E03F00003F00003F001FFF00FFFF03FE3F07F03F07E03
F0FE03F0FC03F0FC03F0FC07F0FE0FF07F1FF83FFDFF0FF0FF18167E951B>97
D<01FF8007FFE01FC3F03F03F03E03F07E03F07C01E0FC0000FC0000FC0000FC0000FC0000FC00
00FC0000FC00007E00007E00003F00303F80701FE1E007FFC001FF0014167E9519>99
D<0003FE000003FE0000007E0000007E0000007E0000007E0000007E0000007E0000007E000000
7E0000007E0000007E0000007E0001FE7E0007FFFE001FC3FE003F00FE003E007E007E007E007C
007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E007C007E00
7E007E003E00FE003F01FE001F83FE000FFF7FC001FC7FC01A237EA21F>I<01FE0007FF801F87
E03F03E03E01F07E00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC0000FC00007E00
007E00003F00181F80380FE0F007FFE000FF8015167E951A>I<01FE1F0007FFFF800F87F7801F
03E7803E01F3003E01F0003E01F0003E01F0003E01F0003E01F0003E01F0001F03E0000F87C000
1FFF80001DFE0000180000001C0000001E0000001FFFE0001FFFFC001FFFFE000FFFFF003FFFFF
007E007F80FC001F80F8000F80F8000F80F8000F80FC001F807E003F003F80FE000FFFF80001FF
C00019217F951C>103 D<FF800000FF8000001F8000001F8000001F8000001F8000001F800000
1F8000001F8000001F8000001F8000001F8000001F8000001F87F0001F9FFC001FF8FC001FF07E
001FE07E001FC07E001FC07E001F807E001F807E001F807E001F807E001F807E001F807E001F80
7E001F807E001F807E001F807E001F807E001F807E001F807E00FFF1FFC0FFF1FFC01A237EA21F
>I<1F003F803F803F803F803F801F000000000000000000000000000000FF80FF801F801F801F
801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80FFF0FFF00C247FA3
0F>I<FF80FF801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80FFF0FFF00C237FA20F
>108 D<FF87F80FF000FF9FFC3FF8001FBC7E78FC001FF07FE0FE001FE03FC07E001FC03F807E
001FC03F807E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001F80
3F007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E
001F803F007E00FFF1FFE3FFC0FFF1FFE3FFC02A167E952F>I<FF87F000FF9FFC001FF8FC001F
F07E001FE07E001FC07E001FC07E001F807E001F807E001F807E001F807E001F807E001F807E00
1F807E001F807E001F807E001F807E001F807E001F807E001F807E00FFF1FFC0FFF1FFC01A167E
951F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC00
7EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF
8FE000FFBFFC001FF0FE001FC03F001F803F801F801F801F801F801F800FC01F800FC01F800FC0
1F800FC01F800FC01F800FC01F800FC01F800FC01F801F801F801F801F803F001FC07F001FF0FE
001FFFF8001F9FE0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
0000FFF00000FFF000001A207E951F>I<FF1F80FF7FC01F77E01FE7E01FC7E01FC7E01F83C01F
80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8000FF
F800FFF80013167E9517>114 D<0FFB003FFF007C1F00780700F00300F00300F80000FF0000FF
F8007FFC007FFE001FFF000FFF80007F80C00F80C00F80E00780F00780F80F00FC1F00FFFE00C7
F80011167E9516>I<00C00000C00000C00000C00001C00001C00003C00007C0000FC0001FC000
FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
0FC1800FC1800FC1800FC1800FC1800FE38007E70003FF0000FC0011207F9F16>I<FF83FE00FF
83FE001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E00
1F807E001F807E001F807E001F807E001F807E001F80FE001F80FE001F81FE000FC3FE000FFF7F
C003FC7FC01A167E951F>I<FFF01FE0FFF01FE00FC007000FC006000FE00E0007E00C0007F01C
0003F0180003F8180001F8300001F8300000FC600000FC6000007EC000007EC000007FC000003F
8000003F8000001F0000001F0000000E0000000E00001B167F951E>I E
/Ff 60 123 df<007E7E01FFFF07CFCF070F8F0F0F0F0E07000E07000E07000E07000E0700FFFF
F0FFFFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07
007F0FF07F0FF0181A809916>11 D<007E0001FE0007CF00070F000F0F000E0F000E00000E0000
0E00000E0000FFFF00FFFF000E07000E07000E07000E07000E07000E07000E07000E07000E0700
0E07000E07000E07007F0FE07F0FE0131A809915>I<007F0001FF0007CF00070F000F0F000E07
000E07000E07000E07000E0700FFFF00FFFF000E07000E07000E07000E07000E07000E07000E07
000E07000E07000E07000E07000E07007F9FE07F9FE0131A809915>I<007E1F8001FF7FC007C7
F1E00707C1E00F07C1E00E0781E00E0380000E0380000E0380000E038000FFFFFFE0FFFFFFE00E
0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E0
0E0380E00E0380E07F8FE3FC7F8FE3FC1E1A809920>I<F0F8F8F81818383070E0C0050B7D990B>
39 D<01C00380070007000E001C001C00380038007000700070006000E000E000E000E000E000
E000E000E000E000E000E000E0006000700070007000380038001C001C000E0007000700038001
C00A267E9B0F>I<E0007000380038001C000E000E0007000700038003800380018001C001C001
C001C001C001C001C001C001C001C001C001C00180038003800380070007000E000E001C003800
38007000E0000A267E9B0F>I<E0F0F0F03030307060E0C0040B7D830B>44
D<FFC0FFC0FFC00A0380880D>I<F0F0F0F004047D830B>I<1FC03FF071F8F078F83CF83CF81C70
1C003C003C0038007800F000E001C0038007000E0C1C0C380C7018FFF8FFF8FFF80E187E9713>
50 D<F0F0F0F00000000000000000F0F0F0F004107D8F0B>58 D<F0F0F0F00000000000000000
E0F0F0F03030307060E0C004177D8F0B>I<1FC07FF07070F038F038F038F038007800F001E003
C0038007000700060006000600060000000000000000000F000F000F000F000D1A7E9912>63
D<000C0000001E0000001E0000001E0000003F0000003F0000003F000000778000006780000067
800000C3C00000C3C00000C3C0000181E0000181E0000181E0000300F00003FFF00003FFF00006
00780006007800060078000E003C001E003C00FF81FFC0FF81FFC01A1A7F991D>65
D<FFFF80FFFFE00F00F00F00780F003C0F003C0F003C0F003C0F003C0F00780F00F00FFFE00FFF
E00F01F00F00780F003C0F001E0F001E0F001E0F001E0F001E0F003C0F003C0F00F8FFFFF0FFFF
C0171A7F991B>I<007F0601FFE607E0FE0F803E1E001E3C001E3C000E78000E780006F00006F0
0000F00000F00000F00000F00000F00000F000067800067800063C000E3C000C1E001C0F803807
E0F001FFE0007F80171A7E991C>I<FFFF8000FFFFE0000F00F0000F0038000F001C000F000E00
0F000E000F000F000F0007000F0007800F0007800F0007800F0007800F0007800F0007800F0007
800F0007800F0007000F0007000F000F000F000E000F001C000F003C000F00F800FFFFE000FFFF
8000191A7F991D>I<FFFFF8FFFFF80F00780F00380F00180F001C0F000C0F030C0F030C0F0300
0F07000FFF000FFF000F07000F03000F03000F03060F00060F000C0F000C0F000C0F001C0F001C
0F0078FFFFF8FFFFF8171A7F991A>I<FFFFF0FFFFF00F00F00F00700F00300F00380F00180F00
180F06180F06000F06000F0E000FFE000FFE000F0E000F06000F06000F06000F00000F00000F00
000F00000F00000F0000FFF800FFF800151A7F9919>I<007F060001FFE60007E0FE000F803E00
1E001E003C001E003C000E0078000E0078000600F0000600F0000000F0000000F0000000F00000
00F0000000F003FFC0F003FFC078001E0078001E003C001E003C001E001E001E000F803E0007E0
7E0001FFFE00007FC6001A1A7E991E>I<FFF0FFF00F000F000F000F000F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F00FFF0FFF00C1A7F990E>73
D<FFF800FFF8000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F00300F00300F00300F00700F00700F00600F00E00F03E0FFFFE0FFFF
E0141A7F9918>76 D<FF8001FFFFC003FF0FC003F00FC003F00DE006F00DE006F00DE006F00CF0
0CF00CF00CF00CF00CF00C7818F00C7818F00C7818F00C3C30F00C3C30F00C3C30F00C1E60F00C
1E60F00C1E60F00C0FC0F00C0FC0F00C0FC0F00C0780F01E0780F0FFC78FFFFFC30FFF201A7F99
23>I<FF00FFC0FF80FFC00FC01E000FC00C000FE00C000DF00C000CF00C000CF80C000C7C0C00
0C7C0C000C3E0C000C1F0C000C1F0C000C0F8C000C078C000C07CC000C03EC000C01EC000C01FC
000C00FC000C00FC000C007C000C003C001E003C00FFC01C00FFC00C001A1A7F991D>I<007F00
0001FFC00007C1F0000F0078001E003C003C001E0038000E0078000F0070000700F0000780F000
0780F0000780F0000780F0000780F0000780F0000780F000078078000F0078000F0038000E003C
001E001E003C000F00780007C1F00001FFC000007F0000191A7E991E>I<FFFF80FFFFE00F00F0
0F00780F00380F003C0F003C0F003C0F003C0F003C0F00380F00780F00F00FFFE00FFF800F0000
0F00000F00000F00000F00000F00000F00000F00000F0000FFF000FFF000161A7F991A>I<FFFE
0000FFFFC0000F01E0000F00F0000F0070000F0078000F0078000F0078000F0078000F0070000F
00F0000F01E0000FFFC0000FFFC0000F03E0000F01F0000F00F0000F00F0000F00F0000F00F000
0F00F0000F00F0000F00F0C00F00F9C0FFF07FC0FFF01F801A1A7F991C>82
D<0FC63FF6787E701EE00EE00EE006E006F000FC007F807FF03FFC0FFE01FE003F000F000FC007
C007E007E00FF00EFC3CDFFCC7F0101A7E9915>I<7FFFFF007FFFFF00781E0F00601E0300601E
0300E01E0380C01E0180C01E0180C01E0180001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
03FFF00003FFF000191A7F991C>I<FFF0FFC0FFF0FFC00F001E000F000C000F000C000F000C00
0F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C
000F000C000F000C000F000C000F000C000F801C000780180003C0380001E0F00000FFE000003F
80001A1A7F991D>I<FFC03FC0FFC03FC01F000E000F000C000F000C000F801C00078018000780
180003C0300003C0300003C0300001E0600001E0600001E0600000F0C00000F0C00000F9C00000
79800000798000003F0000003F0000003F0000001E0000001E0000001E0000000C00001A1A7F99
1D>I<FFC7FF1FF0FFC7FF1FF01E00F803C01E007803800F007803000F007803000F00FC030007
80FC06000780FC060007819E060007819E0E0003C19E0C0003C30F0C0003C30F0C0001E30F1800
01E70F980001E607980000F607B00000F607B00000FC03F000007C03E000007C03E000007801E0
00007801E000003801C000003000C000241A7F9927>I<18387060E0C0C0F8F8F878050B7E990B>
96 D<7F80FFE0F1F0F0F0607000F01FF03FF07870F070E070E073E0F3F1F37FFE3F3C10107E8F
13>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001CFC001FFE00
1F0F001E07801C03801C01C01C01C01C01C01C01C01C01C01C01C01C03801E07801F0F001BFE00
19F800121A7F9915>I<07F81FFC3C3C783C7018E000E000E000E000E000F0007000780C3E1C1F
F807E00E107F8F11>I<007E00007E00000E00000E00000E00000E00000E00000E00000E00000E
000FEE001FFE003C3E00781E00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00781E
003C3E001FFFC00FCFC0121A7F9915>I<07E01FF03C78701C701CFFFCFFFCE000E000E000F000
7000780C3E1C1FF807E00E107F8F11>I<00F803FC07BC0F3C0E3C0E000E000E000E000E00FFC0
FFC00E000E000E000E000E000E000E000E000E000E000E000E007FE07FE00E1A80990C>I<0FDF
1FFF38777038703870387038703838703FE07FC0700070007FF83FFC7FFEF01FE00FE007E007F0
0F7C3E3FFC0FF010187F8F13>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C
00001C00001CF8001FFC001F1E001E0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C
0E001C0E001C0E00FF9FC0FF9FC0121A7F9915>I<3C003C003C003C0000000000000000000000
0000FC00FC001C001C001C001C001C001C001C001C001C001C001C001C00FF80FF80091A80990A
>I<01E001E001E001E000000000000000000000000007E007E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E000E000E060E0F1E0F3C0FF807F000B2183990C>I<FC0000
FC00001C00001C00001C00001C00001C00001C00001C00001C00001C7F801C7F801C7C001C7000
1CE0001DC0001FC0001FE0001EF0001CF0001C78001C3C001C3C001C1E00FF3FC0FF3FC0121A7F
9914>I<FC00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C00FF80FF80091A80990A>I<FCFC3F00FFFEFF801F0FC3C01E0781
C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C07
01C0FF9FE7F8FF9FE7F81D107F8F20>I<FCF800FFFC001F1E001E0E001C0E001C0E001C0E001C
0E001C0E001C0E001C0E001C0E001C0E001C0E00FF9FC0FF9FC012107F8F15>I<07E01FF8381C
700E6006E007E007E007E007E007E007700E700E3C3C1FF807E010107F8F13>I<FCFC00FFFE00
1F0F001E07801C03801C03C01C01C01C01C01C01C01C01C01C03C01C03801E07801F1F001FFE00
1DF8001C00001C00001C00001C00001C0000FF8000FF800012177F8F15>I<07C6001FF6003E3E
00781E00700E00F00E00E00E00E00E00E00E00E00E00F00E00700E00781E003C7E001FFE000FCE
00000E00000E00000E00000E00000E00007FC0007FC012177F8F14>I<FDE0FFF01F701E701E00
1C001C001C001C001C001C001C001C001C00FFC0FFC00C107F8F0F>I<3FE07FE0F0E0E060E060
F000FF807FC01FE001F0C0F0E070E070F0F0FFE0DF800C107F8F0F>I<0C000C000C000C001C00
1C003C00FFC0FFC01C001C001C001C001C001C001C001C601C601C601C601EE00FC007800B177F
960F>I<FC7E00FC7E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E
001C1E001E3E000FFFC007EFC012107F8F15>I<FF3F80FF3F803C0E001C0C001C0C000E18000E
18000E380007300007300007F00003E00003E00001C00001C00001C00011107F8F14>I<FF3F9F
80FF3F9F803C1E0E001C3E0C001C360C001C370C000E3718000E6318000E6398000763B00007C1
B00007C1F00007C1F0000380E0000380E0000380E00019107F8F1C>I<7F1FC07F1FC00F1E0007
1C0003B80003B00001E00000E00000F00001F00003B800071C00061C001E0E00FF1FE0FF1FE013
10808F14>I<FF3F80FF3F803C0E001C0C001C0C000E18000E18000E380007300007300007F000
03E00003E00001C00001C00001C000018000018000618000F30000C70000FE000078000011177F
8F14>I<7FF87FF870F860F061E063C063C007800F181E181E183C387830F870FFF0FFF00D107F
8F11>I E /Fg 8 118 df<78FCFCFCFC78000000000078FCFCFCFC7806117D900C>58
D<FFFFF000FFFFFC000FC03F000FC00F800FC007C00FC003E00FC003E00FC001F00FC001F00FC0
01F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F00FC001F00F
C003F00FC003E00FC007C00FC00F800FC03F00FFFFFE00FFFFF0001D1A7E9922>68
D<03FC001FFF003F1F007C1F007C1F00F80E00F80000F80000F80000F80000F80000FC00007C00
007E01803F87801FFF0003FC0011117F9014>99 D<1E003F003F003F003F001E00000000000000
00007F007F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFC0FFC00A1B80
9A0C>105 D<FF3F80FF7FC01FE7E01FC3E01F83E01F03E01F03E01F03E01F03E01F03E01F03E0
1F03E01F03E01F03E01F03E0FFE7FCFFE7FC16117F9019>110 D<03F8000FFE003E0F803C0780
7803C07803C0F803E0F803E0F803E0F803E0F803E0F803E07803C07C07C03E0F800FFE0003F800
13117F9016>I<1FF07FF07070E030F030FC00FFE07FF07FF81FFC01FCC03CE01CE01CF838FFF8
CFE00E117F9011>115 D<FF1FE0FF1FE01F03E01F03E01F03E01F03E01F03E01F03E01F03E01F
03E01F03E01F03E01F03E01F07E01F0FE00FFFFC07FBFC16117F9019>117
D E /Fh 58 122 df<6030F078F078F078F078F078F078F078F078F078E038E0380D0C7C9916>
34 D<00E001E007C007800F001E003C0038007800700070007000F000E000E000E000E000E000
E000E000F000700070007000780038003C001E000F00078007C001E000E00B217A9C16>40
D<E000F0007C003C001E000F000780038003C001C001C001C001E000E000E000E000E000E000E0
00E001E001C001C001C003C0038007800F001E003C007C00F000E0000B217C9C16>I<01C00001
C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF8071C70001
C00001C00001C00001C00011127E9516>I<387C7E7E3E0E1E3CFCF860070B798416>44
D<000380000380000780000780000F00000F00001E00001E00003C00003C0000780000780000F0
0000F00001E00001E00003C00003C0000780000780000F00000F00001E00001E00003C00003C00
00780000780000F00000F00000E00000E0000011207E9C16>47 D<03E0000FF8001FFC001E3C00
380E00780F00700700700700E00380E00380E00380E00380E00380E00380E00380E00380F00780
700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816>I<0380038007800F80
1F80FF80FF80F380038003800380038003800380038003800380038003800380038003807FFC7F
FC7FFC0E197C9816>I<7FFF00FFFF80FFFF80000000000000000000000000000000FFFF80FFFF
807FFF00110B7E9116>61 D<00E00001F00001F00001B00001B00003B80003B80003B800031800
071C00071C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C0700
FF1FE0FF1FE0FF1FE013197F9816>65 D<FFF800FFFE00FFFF001C0F001C07801C03801C03801C
03801C07801C07001FFF001FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C
03C01C0780FFFF80FFFF00FFFC0012197F9816>I<03F18007FF800FFF801F0F803C0780780780
780380700380F00000E00000E00000E00000E00000E00000E00000E00000F00000700380780380
7803803C07801F0F000FFE0007FC0003F00011197E9816>I<FFF800FFFE00FFFF001C0F001C07
801C03C01C01C01C01C01C01E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01
C01C01C01C03C01C07801C0F80FFFF00FFFE00FFF8001319809816>I<FFFFC0FFFFC0FFFFC01C
01C01C01C01C01C01C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C
00001C00E01C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FFFFE0FFFFE0
FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C00
1C1C001C00001C00001C00001C00001C00001C0000FFC000FFC000FFC00013197F9816>I<03F3
000FFF001FFF003F1F003C0F00780F00780700700700F00000E00000E00000E00000E00000E07F
C0E07FC0E07FC0F00700700700780F00780F003C0F003F1F001FFF000FFF0003E70012197E9816
>I<FFBFE0FFBFE0FFBFE01C07001C07001C07001C07001C07001C07001C07001FFF001FFF001F
FF001C07001C07001C07001C07001C07001C07001C07001C07001C0700FFBFE0FFBFE0FFBFE013
197F9816>I<FFFEFFFEFFFE038003800380038003800380038003800380038003800380038003
8003800380038003800380FFFEFFFEFFFE0F197D9816>I<FF8FF0FF8FF0FF8FF01C07801C0F00
1C1F001C3E001C7C001C78001CF0001DF0001FF0001FF8001FF8001FBC001F3C001E1E001C1E00
1C0F001C0F001C07801C0780FF8FF0FF8FF0FF8FF01419809816>75 D<FFC000FFC000FFC0001C
00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
00001C00401C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FC07E0FE0FE0
FE0FE03A0B803B1B803B1B803B1B803B1B803BBB803BBB8039B38039B38039B38039B38039F380
38E38038E380380380380380380380380380380380FE0FE0FE0FE0FE0FE013197F9816>I<FE3F
E0FF3FE0FF3FE01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7001CE7001CE7
001C67001C67001C77001C77001C37001C37001C37001C1700FF9F00FF9F00FF8F0013197F9816
>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE001FFC0011
197E9816>I<FFF800FFFE00FFFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C0380
1C0F801FFF001FFE001FF8001C00001C00001C00001C00001C00001C00001C0000FF8000FF8000
FF800012197F9816>I<FFE000FFF800FFFC001C1E001C0F001C07001C07001C07001C07001C0F
001C1E001FFC001FF8001FFC001C3E001C1E001C0E001C0E001C0E001C0E701C0E701C0FF0FF8F
F0FF87E0FF83C014197F9816>82 D<0FF3001FFF007FFF00781F00F00F00E00700E00700E00000
F000007800007F80003FF8000FFC0000FE00000F00000780000380000380E00380E00380F00780
F81F00FFFE00FFFC00CFF80011197E9816>I<FFFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0
E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E0000FFE000FFE000FFE0013197F9816>I<FF8FF8FF8FF8FF8FF81C01C01C01C01C
01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01E
03C01E03C00F07800F8F8007FF0003FE0000F8001519809816>I<FF1FE0FF1FE0FF1FE0380380
1C07001C07001C07001C07000E0E000E0E000E0E000E0E00060C00071C00071C00071C00071C00
03180003B80003B80003B80001B00001F00001F00000E00013197F9816>I<FE0FE0FE0FE0FE0F
E07001C07001C07001C030018038038038038038038038E38039F38039F38039B38019B30019B3
0019B30019B30019B30019B3001913001B1B000F1E000F1E000E0E0013197F9816>I<7F3F807F
3F807F3F800E1E000E1C00073C0007380003B80003F00001F00001E00000E00001E00001F00003
F00003B80007B800071C00071C000E0E000E0E001C0700FF1FE0FF1FE0FF1FE013197F9816>I<
FFF0FFF0FFF0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000FFF0FFF0FFF00C20789C16>91
D<FFF0FFF0FFF00070007000700070007000700070007000700070007000700070007000700070
0070007000700070007000700070007000700070FFF0FFF0FFF00C207F9C16>93
D<FFFF80FFFF80FFFF8011037E7E16>95 D<1FE0007FF8007FFC00783C00301E00000E00007E00
0FFE003FFE007FCE00F80E00E00E00E00E00F01E00F83E007FFFE03FFFE01FC3E013127E9116>
97 D<FE0000FE0000FE00000E00000E00000E00000E00000E7E000FFF800FFFC00FC7E00F01E0
0F00F00E00F00E00700E00700E00700E00700F00F00F00E00F81E00FC7C00FFFC00FFF800E7E00
1419809816>I<03FC0FFE1FFE3E1E780C7000F000E000E000E000E000F00070077C073E1F1FFE
0FFC03F010127D9116>I<007F00007F00007F0000070000070000070000070007E7001FFF003F
FF003E3F00780F00700F00F00700E00700E00700E00700E00700F00F00F00F00781F007E3F003F
FFF01FF7F007E7F014197F9816>I<07E01FF83FFC7C3E781FF00FF007FFFFFFFFFFFFE000F000
F007780F7E1F3FFE0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001C0
00FFFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C0007FFF007FFF007FFF0011197F9816>I<03E7C00FFFE01FFFE01E3CE03C1E0038
0E00380E00380E003C1E001E3C001FFC003FF8003BE0003800003C00001FFE003FFF807FFFC078
07C0F001E0E000E0E000E0E000E0F001E07E0FC03FFF801FFF0007FC00131C7F9116>I<FE0000
FE0000FE00000E00000E00000E00000E00000E7E000FFF000FFF800FC7800F03800F03800E0380
0E03800E03800E03800E03800E03800E03800E03800E0380FFE7F8FFE7F8FFE7F81519809816>
I<03C003C003C003C000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C0
01C001C001C001C0FFFFFFFFFFFF101A7D9916>I<007800780078007800000000000000001FF8
1FF81FF80038003800380038003800380038003800380038003800380038003800380038003800
380078F078F0F0FFF0FFE03F800D237E9916>I<FE0000FE0000FE00000E00000E00000E00000E
00000E7FE00E7FE00E7FE00E1F000E3E000E7C000EF8000FF0000FF8000FFC000FBC000F1E000E
1F000E0F800E0780FFCFF0FFCFF0FFCFF01419809816>I<FFC000FFC000FFC00001C00001C000
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C000FFFF80FFFF80FFFF8011197E9816>I<FBC780FFEFC0FFFFE03E7C
E03C78E03870E03870E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7C
F8FE7CF81512809116>I<FE7E00FFFF00FFFF800FC7800F03800F03800E03800E03800E03800E
03800E03800E03800E03800E03800E0380FFE7F8FFE7F8FFE7F81512809116>I<03E0000FF800
1FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E00
1FFC000FF80003E00011127E9116>I<FE7E00FFFF80FFFFC00FC7E00F01E00F00F00E00F00E00
700E00700E00700E00700F00F00F00E00F81E00FC7C00FFFC00FFF800E7E000E00000E00000E00
000E00000E00000E0000FFE000FFE000FFE000141B809116>I<FF1FC0FF7FE0FFFFE007F1E007
E0C007C000078000078000070000070000070000070000070000070000070000FFFC00FFFC00FF
FC0013127F9116>114 D<1FEC3FFC7FFCF03CE01CE01CF8007FC03FF007FC003EE00EE00EF00E
F83EFFFCFFF8CFF00F127D9116>I<070000070000070000070000070000FFFF00FFFF00FFFF00
070000070000070000070000070000070000070000070100070380070380070780078F8003FF00
03FE0000F80011177F9616>I<FE3F80FE3F80FE3F800E03800E03800E03800E03800E03800E03
800E03800E03800E03800E03800E07800F0F800FFFF807FFF803F3F81512809116>I<FF1FE0FF
1FE0FF1FE01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003
B80001F00001F00000E00013127F9116>I<FFBFE0FFBFE0FFBFE0380380380380380380380380
38E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F1E0013127F9116>
I<7F3FC07F3FC07F3FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B800073C
00071C000E0E00FF3FE0FF3FE0FF3FE013127F9116>I<FF9FE0FF9FE0FF9FE01C07000E07000E
0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F00000F00000F00000
E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F9116>I
E /Fi 56 123 df<001FF3F800FFFFFE03F87F3E07E07E3E0FC07E3E0F807C1C0F807C000F807C
000F807C000F807C000F807C00FFFFFFC0FFFFFFC00F807C000F807C000F807C000F807C000F80
7C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C007F
E1FFC07FE1FFC01F1D809C1C>11 D<001FFC0000FFFC0003F87C0007E07C000FC07C000F807C00
0F807C000F807C000F807C000F807C000F807C00FFFFFC00FFFFFC000F807C000F807C000F807C
000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F80
7C000F807C007FF3FF807FF3FF80191D809C1B>13 D<007000E001C003C007800F000F001E001E
003C003C007C00780078007800F800F800F000F000F000F000F000F000F000F800F80078007800
78007C003C003C001E001E000F000F00078003C001C000E000700C297D9E13>40
D<E000700038003C001E000F000F000780078003C003C003E001E001E001E001F001F000F000F0
00F000F000F000F000F001F001F001E001E001E003E003C003C0078007800F000F001E003C0038
007000E0000C297D9E13>I<7CFEFFFFFFFF7F0307060E1C3C7830080F7D860D>44
D<FFE0FFE0FFE0FFE00B047F8A10>I<00600001E0000FE000FFE000F3E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E0007FFF807FFF80111B7D9A18>49 D<07F8003FFF00787F80F81FC0
FC0FC0FC0FE0FC0FE0FC07E07807E0000FE0000FE0000FC0001F80003F00003E00007C0000F000
01E00003C0600780600F00601C00E03FFFC07FFFC0FFFFC0FFFFC0FFFFC0131B7E9A18>I<0003
8000000380000007C0000007C0000007C000000FE000000FE000001FF000001BF000001BF00000
31F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E0001803F0001FFFF0003FFFF80
03001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFFC07FFE1F1C7E9B24>65
D<FFFFF800FFFFFF000FC01F800FC00FC00FC00FC00FC00FE00FC00FE00FC00FE00FC00FE00FC0
0FE00FC00FC00FC01F800FFFFF000FFFFE000FC03F800FC00FC00FC007E00FC007E00FC007F00F
C007F00FC007F00FC007F00FC007F00FC007E00FC00FE00FC01FC0FFFFFF80FFFFFC001C1C7E9B
22>I<001FF06000FFFCE003FC1FE00FE007E01FC003E01F8001E03F0000E07F0000E07F0000E0
7E000060FE000060FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000
607F0000607F0000603F0000E01F8000C01FC001C00FE0078003FC1F0000FFFC00001FF0001B1C
7D9B22>I<FFFFF800FFFFFF000FC01FC00FC007E00FC003F00FC001F80FC001F80FC000FC0FC0
00FC0FC000FC0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0F
C000FC0FC000FC0FC000FC0FC001F80FC001F80FC003F00FC007E00FC01FC0FFFFFF00FFFFF800
1F1C7E9B25>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC003800FC003800FC18180
0FC181800FC181800FC180000FC380000FFF80000FFF80000FC380000FC180000FC180000FC180
600FC180600FC000E00FC000C00FC000C00FC001C00FC001C00FC003C00FC00F80FFFFFF80FFFF
FF801B1C7E9B1F>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC003800FC003800FC0
01800FC181800FC181800FC180000FC180000FC380000FFF80000FFF80000FC380000FC180000F
C180000FC180000FC180000FC000000FC000000FC000000FC000000FC000000FC00000FFFF0000
FFFF0000191C7E9B1E>I<001FF81800FFFE3803FC0FF807F003F80FC000F81F8000783F800078
7F0000387F0000387E000018FE000018FE000000FE000000FE000000FE000000FE000000FE007F
FFFE007FFF7E0001F87F0001F87F0001F83F8001F81F8001F80FE001F807F003F803FE07F800FF
FE78001FF818201C7D9B26>I<FFFC3FFFFFFC3FFF0FC003F00FC003F00FC003F00FC003F00FC0
03F00FC003F00FC003F00FC003F00FC003F00FC003F00FFFFFF00FFFFFF00FC003F00FC003F00F
C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F0
FFFC3FFFFFFC3FFF201C7E9B25>I<FFFFFFFF07E007E007E007E007E007E007E007E007E007E0
07E007E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101C7F9B12>I<
07FFF007FFF0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80
001F80001F80001F80001F80001F80001F80001F80301F80FC1F80FC1F80FC1F80FC3F80F87F00
7FFE001FF000141C7F9B19>I<FFFC07FFFFFC07FF0FC000E00FC003C00FC007800FC00F000FC0
1E000FC03C000FC070000FC0E0000FC3C0000FC7C0000FCFE0000FDFF0000FFFF0000FF3F8000F
E1FC000FC1FC000FC0FE000FC07F000FC03F000FC03F800FC01FC00FC00FE00FC00FE00FC007F0
FFFC3FFFFFFC3FFF201C7E9B25>I<FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0030FC0030FC0030FC007
0FC0070FC0060FC00E0FC01E0FC07EFFFFFEFFFFFE181C7E9B1D>I<FFC00003FFFFE00007FF0F
E00007F00DF0000DF00DF0000DF00DF0000DF00CF80019F00CF80019F00C7C0031F00C7C0031F0
0C3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F00C1F00C0F8181F00C0F8181F00C07C301
F00C07C301F00C03E601F00C03E601F00C01FC01F00C01FC01F00C01FC01F00C00F801F00C00F8
01F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFE003FFFFF003FF0FF800300FF800300DFC0030
0CFE00300CFF00300C7F80300C3F80300C1FC0300C0FE0300C07F0300C07F8300C03FC300C01FC
300C00FE300C007F300C007FB00C003FF00C001FF00C000FF00C0007F00C0003F00C0003F00C00
01F00C0000F0FFC00070FFC00030201C7E9B25>I<003FE00001FFFC0003F07E000FC01F801F80
0FC01F0007C03F0007E07F0007F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE
0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F07F0007F03F0007E03F800FE01F800FC0
0FC01F8003F07E0001FFFC00003FE0001D1C7D9B24>I<FFFFF800FFFFFE000FC03F800FC01F80
0FC00FC00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FC00FC01F800FC03F
800FFFFE000FFFF8000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
00000FC000000FC00000FFFC0000FFFC00001B1C7E9B21>I<FFFFF00000FFFFFE00000FC03F00
000FC01F80000FC00FC0000FC00FE0000FC00FE0000FC00FE0000FC00FE0000FC00FE0000FC00F
C0000FC01F80000FC03F00000FFFFE00000FFFF800000FC0FC00000FC07E00000FC03E00000FC0
3F00000FC03F00000FC03F00000FC03F80000FC03F80000FC03F80000FC03FC1800FC03FE380FF
FC1FFF00FFFC07FE00211C7E9B24>82 D<07F8601FFFE03E0FE07803E07001E0F000E0F00060F8
0060F80000FE0000FFF0007FFE007FFF803FFFC01FFFE007FFE0007FF00007F00001F00001F0C0
00F0C000F0E000F0E001E0F001E0FE07C0FFFF80C3FE00141C7D9B1B>I<7FFFFFE07FFFFFE078
1F81E0701F80E0601F8060E01F8070C01F8030C01F8030C01F8030C01F8030001F8000001F8000
001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
00001F8000001F8000001F8000001F800007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03
FF0FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC0
00300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300F
C0007007E0006007E000E003F001C001FC0F80007FFF00000FF800201C7E9B25>I<FFFC01FF80
FFFC01FF800FC000180007E000300007E000300007F000700003F000600003F800E00001F800C0
0001FC00C00000FC01800000FC018000007E030000007E030000007F070000003F060000003F8E
0000001F8C0000001FCC0000000FD80000000FD800000007F000000007F000000007F000000003
E000000003E000000001C000000001C00000211C7F9B24>I<7FFE1FFE007FFE1FFE0007F00180
0003F803800001FC07000000FC06000000FE0C0000007F1C0000003F380000003FB00000001FE0
0000000FE00000000FE000000007F000000003F800000007F80000000FFC0000000CFE00000018
7E000000387F000000703F800000601F800000C01FC00001C00FE000018007F000030007F000FF
F03FFF80FFF03FFF80211C7F9B24>88 D<7FFFFC7FFFFC7E01FC7803F87007F0E007F0E00FE0C0
1FE0C01FC0C03F80003F80007F0000FE0000FE0001FC0001FC0003F80607F00607F0060FE0061F
E00E1FC00E3F801C3F801C7F003CFE00FCFFFFFCFFFFFC171C7D9B1D>90
D<0FFC003FFF003E1F803E0FC03E07C01C07C00007C003FFC01FFFC07F87C07F07C0FE07C0FC07
C0FC07C0FE0FC07E3FE03FFBF80FE1F815127F9117>97 D<FF0000FF00001F00001F00001F0000
1F00001F00001F00001F00001F00001F00001F3FC01FFFF01FE1F81F80FC1F007C1F007E1F007E
1F007E1F007E1F007E1F007E1F007E1F007E1F00FC1F80FC1FE1F81CFFF0183FC0171D7F9C1B>
I<03FC001FFF003F1F007E1F007E1F00FC0E00FC0000FC0000FC0000FC0000FC0000FC0000FC00
007E01807F03803F87001FFE0003F80011127E9115>I<000FF0000FF00001F00001F00001F000
01F00001F00001F00001F00001F00001F007F9F01FFFF03F0FF07E03F07E01F0FC01F0FC01F0FC
01F0FC01F0FC01F0FC01F0FC01F0FC01F07C01F07E03F03F0FF01FFFFE07F1FE171D7E9C1B>I<
03FC000FFF003F0F803E07C07E03C07C03E0FC03E0FFFFE0FFFFE0FC0000FC0000FC00007C0000
7E00603F00E01FC3C00FFF8003FE0013127F9116>I<007F0001FFC003E7C007C7C00FC7C00F83
800F80000F80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80
000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I<07
F9F01FFFF83E1F787C0FB87C0F807C0F807C0F807C0F807C0F803E1F003FFE0037F80070000070
00007800003FFF803FFFE01FFFF07FFFF0F801F8F000F8F00078F00078F800F87E03F03FFFE007
FF00151B7F9118>I<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F0000
1F00001F1FE01F7FF01FF1F81FC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F81F00F81F00F8FFE7FFFFE7FF181D7F9C1B>I<1E003F007F007F007F003F001E00
00000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F
001F00FFE0FFE00B1E7F9D0E>I<00F801FC01FC01FC01FC01FC00F80000000000000000000003
FC03FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C
707CF87CF8FCF9F87FF03F800E26839D0F>I<FF0000FF00001F00001F00001F00001F00001F00
001F00001F00001F00001F00001F0FF81F0FF81F03801F0F001F1E001F3C001F78001FF8001FFC
001FFE001F3E001F1F001F1F801F0F801F07C01F03E0FFC7FCFFC7FC161D7F9C19>I<FF00FF00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F00FFE0FFE00B1D7F9C0E>I<FF1FE0FF00FF7FF3FF801FF1FF8FC01FC0
FE07C01F80FC07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F
00F807C01F00F807C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128
>I<FF1FE0FF7FF01FF1F81FC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000FFF801F07C03E03E07C01F0
7C01F0FC01F8FC01F8FC01F8FC01F8FC01F8FC01F87C01F07C01F03E03E01F07C00FFF8001FC00
15127F9118>I<FF3FC0FFFFF01FE3F81F80FC1F00FC1F00FE1F007E1F007E1F007E1F007E1F00
7E1F007E1F00FE1F00FC1F81FC1FE3F81FFFF01F3FC01F00001F00001F00001F00001F00001F00
00FFE000FFE000171A7F911B>I<FE3E00FEFF801EEF801FCF801F8F801F87001F00001F00001F
00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF00011127F9114>114
D<1FF87FF87078E018E018F000FF80FFF07FF83FF80FFC007CC03CE01CE01CF878FFF8CFE00E12
7E9113>I<030003000300070007000F000F003F00FFFCFFFC1F001F001F001F001F001F001F00
1F001F001F0C1F0C1F0C1F0C1F9C0FF803F00E1A7F9913>I<FF07F8FF07F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F81F01F81F87F80FFFFF03FC
FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001
F60001F60001FE0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8FF8FE1F
03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003F83D80
01F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7FC1F81
800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00070F800607C00C03
E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003
E30003E30001F60001F60001FE0000FC0000FC00007800007800003000003000006000706000F8
E000C0C000E380007F00003E0000161A7F9119>I<3FFF803FFF803C3F80307F00707E0060FC00
61FC0063F80003F00007E1800FE1801FC1801F83803F03007F0700FE0F00FFFF00FFFF0011127F
9115>I E /Fj 3 104 df<3078F06005047C830D>46 D<01E007100C1018083810701070607F80
E000E000E000E000E000E0086010602030C01F000D127B9113>101 D<00F3018F030F06070E0E
0C0E1C0E1C0E381C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3
007E00101A7D9113>103 D E /Fk 44 123 df<3E007C007F00FE00FF81FF00FF81FF00FFC1FF
80FFC1FF80FFC1FF807FC0FF803EC07D8000C0018000C0018001C0038001800300018003000380
070007000E0006000C000E001C001C003800380070003000600019157EA924>34
D<0003F0000000000FFC000000001F1C000000003E0E000000007C0F00000000FC0700000000FC
0700000001F80700000001F80700000001F80700000001FC0E00000001FC0E00000001FC1C0000
0001FC3800000001FC7000000001FEF0007FFC00FFE0007FFC00FF80007FFC00FF0000078000FF
00000F00007F80000E00007F80001E00007FC0003C0001FFC000380003FFE0007800079FF000F0
000F8FF000E0001F0FF801E0003F07FC03C0007F03FE0780007F03FF0F0000FF01FF0E0000FF00
FF9E0000FF007FFC0000FF803FF80000FF801FF000387F800FFC00387FC01FFE00703FE07FFF81
F01FFFFC7FFFE007FFF01FFFC000FF8001FE002E2A7DA935>38 D<3E007F00FF80FF80FFC0FFC0
FFC07FC03EC000C000C001C0018001800380070006000E001C00380030000A157B8813>44
D<FFFF80FFFF80FFFF80FFFF80FFFF80FFFF8011067F9017>I<3E007F00FF80FF80FF80FF80FF
807F003E0009097B8813>I<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F
803F001F807F001FC07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0FF00
1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF
001FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC07E00
07E0FC0001FFF000003F80001B277DA622>48 D<000700000F00007F0007FF00FFFF00FFFF00F8
FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
FF0000FF0000FF0000FF007FFFFE7FFFFE7FFFFE17277BA622>I<00FFC00007FFF8001FFFFE00
3F03FF007E00FF807F007FC0FF807FC0FF803FE0FF803FE0FF803FE0FF801FE07F001FE03E003F
E000003FE000003FC000003FC000007F8000007F800000FF000001FE000001FC000003F8000007
E000000FC000001F8000003E00E0007C00E0007800E000F001C001E001C0038001C007FFFFC00F
FFFFC01FFFFFC03FFFFFC07FFFFF80FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007FC00003
FFF00007FFFC000FC1FE001F80FF003FC0FF003FE07F803FE07F803FE07F803FE07F803FE07F80
1FC0FF800F80FF000000FF000001FE000003FC000007F00000FFC00000FFF8000001FE000000FF
0000007F8000007FC000003FC000003FE01E003FE07F803FE07F803FE0FFC03FE0FFC03FE0FFC0
3FE0FFC03FC0FFC07FC07F807F807F00FF803F81FF001FFFFC0007FFF80000FFC0001B277DA622
>I<0000070000000F0000001F0000003F0000007F000000FF000000FF000001FF000003FF0000
077F00000F7F00000E7F00001C7F0000387F0000707F0000F07F0000E07F0001C07F0003807F00
07007F000F007F000E007F001C007F0038007F0070007F00E0007F00FFFFFFF8FFFFFFF8FFFFFF
F80000FF000000FF000000FF000000FF000000FF000000FF000000FF00007FFFF8007FFFF8007F
FFF81D277EA622>I<0C0007000FC03F000FFFFE000FFFFE000FFFFC000FFFF8000FFFF0000FFF
C0000FFF00000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F
C1FE000E007F000C007F8000003F8000003FC000003FC000003FE000003FE03E003FE07F003FE0
FF803FE0FF803FE0FF803FE0FF803FC0FF003FC07E007FC078007F803C00FF001F83FE000FFFFC
0007FFF00000FF80001B277DA622>I<0007F800003FFC0000FFFE0001FE1F0007F81F000FE03F
800FC07F801FC07F803F807F803F807F807F803F007F001E007F0000007F000000FF000000FF1F
E000FF3FF800FF70FE00FFE03F00FFC03F80FF801FC0FF801FC0FF801FC0FF001FE0FF001FE0FF
001FE0FF001FE07F001FE07F001FE07F001FE07F001FE03F801FC03F801FC01F803F800FC03F80
07F0FF0003FFFC0001FFF800007FE0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF0
3FFFFFF03FFFFFE07FFFFFC07FFFFF807FFFFF807FFFFF0070001E0070003C0070007800E00070
00E000F000E001E0000003C0000007C00000078000000F8000000F0000001F0000003F0000003F
0000003F0000007E0000007E000000FE000000FE000000FE000000FE000001FE000001FE000001
FE000001FE000001FE000001FE000001FE000001FE000000FC0000007800001C297CA822>I<00
7FC00001FFF80007FFFC000FC0FE000F003F001E001F001E001F803E000F803E000F803F000F80
3FC00F803FF01F803FF81F003FFE3F001FFFFE001FFFFC000FFFF00007FFFC0003FFFE0003FFFF
000FFFFF801FBFFFC03F0FFFC07E03FFE07C00FFE0FC007FE0F8001FE0F80007E0F80007E0F800
03E0F80003E0FC0003C07C0007C07E0007803F000F801FC07F000FFFFE0007FFF80000FFC0001B
277DA622>I<007FC00003FFF00007FFFC000FE0FE001FC07E003F803F007F003F807F003F80FF
001FC0FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F003FE07F003FE0
7F003FE03F807FE01F80FFE00FE1DFE003FF9FE000FF1FE000001FE000001FC000001FC00F001F
C01F803FC03FC03F803FC03F803FC07F003FC07F003F80FE001F01FC001F07F8000FFFE00007FF
C00001FE00001B277DA622>I<00007FF801800007FFFE0780001FFFFF8F80007FF80FFF8000FF
8001FF8003FE00007F8007FC00003F8007F800001F800FF000000F801FE000000F803FE0000007
803FC0000007807FC0000003807FC0000003807FC000000380FF8000000000FF8000000000FF80
00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000
00FF8000000000FF80000000007FC0000000007FC0000003807FC0000003803FC0000003803FE0
000003801FE0000007800FF00000070007F800000F0007FC00001E0003FE00003C0000FF8000F8
00007FF807F000001FFFFFC0000007FFFF000000007FF8000029297CA832>67
D<00007FF003000007FFFE0F00001FFFFF9F00007FF00FFF0000FF8003FF0003FE0000FF0007FC
00007F000FF800003F000FF000001F001FE000001F003FE000000F003FC000000F007FC0000007
007FC0000007007FC000000700FF8000000000FF8000000000FF8000000000FF8000000000FF80
00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8003FFFFF8FF8003FFFF
F87FC003FFFFF87FC00001FF007FC00001FF003FC00001FF003FE00001FF001FE00001FF000FF0
0001FF000FF80001FF0007FC0001FF0003FE0003FF0000FF8003FF00007FF01FFF00001FFFFF3F
000007FFFE1F0000007FF007002D297CA836>71 D<FFFFFEFFFFFEFFFFFE01FF0001FF0001FF00
01FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF00
01FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF00
01FF0001FF0001FF0001FF0001FF0001FF00FFFFFEFFFFFEFFFFFE17297FA81A>73
D<FFFF0000003FFFC0FFFF0000003FFFC0FFFF8000007FFFC003FF8000007FF00003FF8000007F
F00003BFC00000EFF00003BFC00000EFF000039FE00001CFF000039FE00001CFF000038FF00003
8FF000038FF000038FF000038FF000038FF0000387F800070FF0000387F800070FF0000383FC00
0E0FF0000383FC000E0FF0000381FE001C0FF0000381FE001C0FF0000381FE001C0FF0000380FF
00380FF0000380FF00380FF00003807F80700FF00003807F80700FF00003803FC0E00FF0000380
3FC0E00FF00003803FC0E00FF00003801FE1C00FF00003801FE1C00FF00003800FF3800FF00003
800FF3800FF000038007FF000FF000038007FF000FF000038007FF000FF000038003FE000FF000
038003FE000FF000038001FC000FF000038001FC000FF000038000F8000FF000FFFE00F803FFFF
C0FFFE00F803FFFFC0FFFE007003FFFFC03A297DA841>77 D<0000FFE000000007FFFC0000003F
C07F8000007F001FC00001FC0007F00003F80003F80007F00001FC000FF00001FE001FE00000FF
001FE00000FF003FC000007F803FC000007F807FC000007FC07F8000003FC07F8000003FC07F80
00003FC0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F
E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F8000003FC07FC000007FC07FC0
00007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF00001FE0007F00001FC
0003F80003F80001FC0007F00000FF001FE000003FC07F8000000FFFFE00000000FFE000002B29
7CA834>79 D<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FE007FE00003FE000FF00003FE00
07F80003FE0007FC0003FE0003FC0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
03FE0003FE0003FE0003FE0003FE0003FC0003FE0007F80003FE0007F80003FE001FE00003FE00
7FC00003FFFFFE000003FFFFFC000003FE01FF000003FE007FC00003FE007FE00003FE003FE000
03FE003FF00003FE001FF00003FE001FF00003FE001FF00003FE001FF00003FE001FF00003FE00
1FF00003FE001FF00003FE001FF00003FE001FF00703FE001FF00703FE000FF80703FE000FF80F
FFFFF807FE1EFFFFF801FFFCFFFFF8003FF030297DA834>82 D<00FF806003FFF0E00FFFFFE01F
C0FFE03F001FE03E0007E07E0003E07C0003E0FC0001E0FC0001E0FC0000E0FE0000E0FF0000E0
FF800000FFF80000FFFFC0007FFFF8007FFFFE003FFFFF801FFFFFC00FFFFFC007FFFFE001FFFF
F0003FFFF00003FFF800001FF800000FF8000007F8E00003F8E00001F8E00001F8E00001F8F000
01F8F00001F0F80003F0FC0003E0FF0007E0FFE01FC0FFFFFF80E1FFFE00C03FF8001D297CA826
>I<0300060007000E000E001C001C00380018003000380070007000E0006000C0006000C000E0
01C000C0018000C0018000DF01BE00FF81FF00FFC1FF80FFC1FF80FFC1FF807FC0FF807FC0FF80
3F807F001F003E00191578A924>92 D<03FFC0000FFFF0001F81FC003FC0FE003FC07F003FC07F
003FC03F803FC03F801F803F8000003F8000003F80001FFF8001FFFF8007FE3F801FE03F803FC0
3F807F803F807F003F80FE003F80FE003F80FE003F80FE007F80FF007F807F00FFC03FC3DFFC1F
FF8FFC03FE07FC1E1B7E9A21>97 D<003FF80001FFFE0007F83F000FE07F801FC07F803F807F80
3F807F807F807F807F003F00FF000000FF000000FF000000FF000000FF000000FF000000FF0000
00FF000000FF0000007F0000007F8000003F8001C03FC001C01FC003C00FE0078007F83F0001FF
FC00003FF0001A1B7E9A1F>99 D<00003FF80000003FF80000003FF800000003F800000003F800
000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
00000003F800000003F800003FE3F80001FFFBF80003F83FF8000FE00FF8001FC007F8003F8003
F8003F8003F8007F8003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF00
03F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8003F8003F8003F
8007F8001FC00FF8000FE01FF80007F07FFF8001FFFBFF80003FC3FF80212A7EA926>I<003FE0
0001FFFC0007F07E000FE03F001FC01F803F800FC03F800FC07F000FC07F0007E0FF0007E0FF00
07E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF000000FF0000007F0000007F8000003F
8000E03F8001E01FC001C00FE007C003F81F8001FFFE00003FF8001B1B7E9A20>I<000FF80000
3FFE0000FF3F0001FC7F8003F87F8003F87F8007F07F8007F07F8007F03F0007F0000007F00000
07F0000007F0000007F0000007F00000FFFFC000FFFFC000FFFFC00007F0000007F0000007F000
0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000007FFF80007F
FF80007FFF8000192A7EA915>I<00FF81F007FFF7FC0FE3FF7C1F80FCFC3F80FE7C3F007E787F
007F007F007F007F007F007F007F007F007F007F007F003F007E003F80FE001F80FC000FE3F800
1FFFF00018FF8000380000003C0000003C0000003E0000003FFFFC003FFFFF001FFFFFC00FFFFF
E007FFFFF03FFFFFF07E000FF87C0001F8F80001F8F80000F8F80000F8F80000F8FC0001F87E00
03F03F0007E01FE03FC007FFFF0000FFF8001E287E9A22>I<FFE0000000FFE0000000FFE00000
000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
00000FE00000000FE00000000FE00000000FE00000000FE0FF00000FE3FFC0000FE787E0000FEE
07F0000FFC03F8000FF803F8000FF003F8000FF003F8000FF003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
0FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF
80212A7DA926>I<0F801FC01FE03FE03FE03FE01FE01FC00F8000000000000000000000000000
00FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE0FFE0FFE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>108
D<FFC07F800FF000FFC1FFE03FFC00FFC7C3F0F87E000FCF03F9E07F000FDC01FB803F000FF801
FF003F800FF001FE003F800FF001FE003F800FF001FE003F800FE001FC003F800FE001FC003F80
0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
E001FC003F800FE001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A
>I<FFC0FF0000FFC3FFC000FFC787E0000FCE07F0000FDC03F8000FF803F8000FF003F8000FF0
03F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
0FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>I<003FE00001FFFC0003F07E00
0FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007
F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F80
0FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE3FE0000FFEFFFC000FFFF0FF0
000FFC03F8000FF001FC000FE001FE000FE000FE000FE000FF000FE000FF000FE0007F800FE000
7F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0
00FF000FE000FF000FE000FE000FF001FE000FF003FC000FF807F8000FFE0FE0000FEFFFC0000F
E3FE00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000
0FE00000000FE0000000FFFE000000FFFE000000FFFE00000021277E9A26>I<FFC7F0FFCFFCFF
DC7E0FD8FF0FF8FF0FF0FF0FF0FF0FF0FF0FE07E0FE0000FE0000FE0000FE0000FE0000FE0000F
E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A
1C>114 D<03FE701FFFF03E03F07801F07000F0F00070F00070F80070FE0000FFF000FFFF007F
FFC03FFFE01FFFF007FFF800FFFC0007FC0000FCE0007CE0003CF0003CF0003CF80078FC0078FF
01F0FFFFC0E1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F000
03F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F000
07F00007F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03807F038
03F87001FCF000FFE0003FC015267FA51B>I<FFE03FF800FFE03FF800FFE03FF8000FE003F800
0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
F8000FE007F8000FE007F8000FE00FF80007E01FF80003F83BFF8001FFF3FF80007FE3FF80211B
7D9A26>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F800E0
0003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F070000007F8F
0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF800000007
F000000007F000000003E000000003E000000001C00000211B7F9A24>I<FFFC0FFF00FFFC0FFF
00FFFC0FFF0007F003C00003F807800001FC07800000FE0F000000FF1E0000007F3C0000003FF8
0000001FF00000000FF00000000FF000000007F000000007F80000000FFC0000001FFE0000001E
FE0000003C7F000000783F800000F01FC00001E01FE00001C00FE00003C007F000FFF01FFF80FF
F01FFF80FFF01FFF80211B7F9A24>120 D<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007
F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE03800000FE038000
007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF800
00000FF80000000FF800000007F000000007F000000003E000000003E000000001C000000001C0
00000003800000000380000038078000007C07000000FE0F000000FE0E000000FE1E000000FE3C
0000007C780000003FE00000000FC000000021277F9A24>I<3FFFFF803FFFFF803F00FF803C00
FF003801FE007803FC007807FC007007F800700FF000701FE000001FE000003FC000007F800000
FF800000FF000001FE038003FC038003FC038007F803800FF007801FF007801FE007003FC00F00
7F801F00FF807F00FFFFFF00FFFFFF00191B7E9A1F>I E /Fl 71 123 df<003F1F8001FFFFC0
03C3F3C00783E3C00F03E3C00E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC
00FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01
C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC007F87FC001A1D809C18>11
D<003F0001FF8003C3C00783C00F03C00E03C00E00000E00000E00000E00000E0000FFFFC0FFFF
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C07F87F87F87F8151D809C17>I<003FC001FFC003C3C00783C00F03C00E01C00E01C00E
01C00E01C00E01C00E01C0FFFFC0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF87FCFF8151D809C17>I<003F83F00001
FFDFF80003E1FC3C000781F83C000F01F03C000E01E03C000E00E000000E00E000000E00E00000
0E00E000000E00E00000FFFFFFFC00FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C
000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
1C000E00E01C000E00E01C007FC7FCFF807FC7FCFF80211D809C23>I<7070F8F8FCFCFCFC7C7C
0C0C0C0C1C1C181838387070F0F060600E0D7F9C15>34 D<00F0000001F80000039C0000070C00
00070C0000070C0000070C0000071C0000071C0000073800000770000007F07FE003E07FE003C0
1F0007C00E000FC01C001FC018003DE0380078F0300070F07000F0786000F03CE000F03FC000F0
1F8000F80F0060780FC0E07C3FE1C03FF9FF800FE03F001B1D7E9C20>38
D<70F8FCFC7C0C0C1C183870F060060D7D9C0C>I<01C00380038007000E000C001C0018003800
38007000700070007000E000E000E000E000E000E000E000E000E000E000E000E000E000E00070
007000700070003800380018001C000C000E0007000380038001C00A2A7D9E10>I<E000700070
0038001C000C000E00060007000700038003800380038001C001C001C001C001C001C001C001C0
01C001C001C001C001C001C003800380038003800700070006000E000C001C00380070007000E0
000A2A7E9E10>I<70F8F8F878181818383070E060050D7D840C>44 D<FFE0FFE0FFE00B038089
0E>I<70F8F8F87005057D840C>I<07E00FF01C38381C781E700E700EF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00F700E700E781E381C1C380FF007E0101B7E9A15>48
D<030007003F00FF00C70007000700070007000700070007000700070007000700070007000700
070007000700070007000700FFF8FFF80D1B7C9A15>I<0FE03FF878FC603EF01EF81FF80FF80F
700F000F001F001E003E003C007800F001E001C0038007000E031C0338037006FFFEFFFEFFFE10
1B7E9A15>I<0FE03FF8387C783E7C1E781E781E001E003C003C00F807F007E00078003C001E00
0F000F000F700FF80FF80FF81EF01E787C3FF80FE0101B7E9A15>I<001C00001C00003C00007C
00007C0000DC0001DC00039C00031C00071C000E1C000C1C00181C00381C00301C00601C00E01C
00FFFFC0FFFFC0001C00001C00001C00001C00001C00001C0001FFC001FFC0121B7F9A15>I<30
1C3FFC3FF83FE030003000300030003000300037E03FF83C3C381E301E000F000F000F000FF00F
F00FF00FF01E703E787C3FF80FE0101B7E9A15>I<01F807FC0F8E1E1E3C1E381E781E78007000
F080F7F8FFFCFC1CF81EF80FF00FF00FF00FF00FF00F700F700F781E381E1E3C0FF807E0101B7E
9A15>I<6000007FFF807FFF807FFF80600700C00600C00E00C01C000038000030000070000060
0000E00000C00001C00001C00003C0000380000380000380000780000780000780000780000780
00078000078000078000111C7E9B15>I<07E01FF83C3C381E701E700E700E780E7C1E7F3C3FF8
1FF00FF01FFC3DFC787E703FF00FE00FE007E007E007F00E781E3C3C1FF807E0101B7E9A15>I<
07E01FF83C38781C781EF00EF00EF00FF00FF00FF00FF00FF01F781F383F3FFF1FEF010F000E00
1E781E781C783C787878F03FE01F80101B7E9A15>I<70F8F8F870000000000000000070F8F8F8
7005127D910C>I<70F8F8F870000000000000000070F8F8F878181818383070E060051A7D910C>
I<00060000000F0000000F0000000F0000001F8000001F8000001F8000003FC0000033C0000033
C0000073E0000061E0000061E00000E1F00000C0F00000C0F00001C0F8000180780001FFF80003
FFFC0003003C0003003C0007003E0006001E0006001E001F001F00FFC0FFF0FFC0FFF01C1C7F9B
1F>65 D<FFFFC0FFFFF00F00F80F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00
780FFFF00FFFE00F00F80F003C0F001E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F00
3E0F007CFFFFF8FFFFC0181C7E9B1D>I<003FC18001FFF18003F07B800FC01F801F000F801E00
07803C0003807C0003807800038078000180F0000180F0000000F0000000F0000000F0000000F0
000000F0000000F000000078000180780001807C0001803C0003801E0003001F0007000FC00E00
03F03C0001FFF000003FC000191C7E9B1E>I<FFFFC000FFFFF0000F007C000F001E000F000F00
0F0007000F0003800F0003C00F0003C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001
E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F000F000F00
1E000F007C00FFFFF000FFFFC0001B1C7E9B20>I<FFFFFCFFFFFC0F007C0F001C0F000C0F000E
0F00060F03060F03060F03060F03000F07000FFF000FFF000F07000F03000F03000F03030F0303
0F00030F00060F00060F00060F000E0F001E0F007CFFFFFCFFFFFC181C7E9B1C>I<FFFFF8FFFF
F80F00780F00380F00180F001C0F000C0F000C0F030C0F030C0F03000F03000F07000FFF000FFF
000F07000F03000F03000F03000F03000F00000F00000F00000F00000F00000F0000FFF800FFF8
00161C7E9B1B>I<003FC18001FFF18003F07B800FC01F801F000F801E0007803C0003807C0003
807800038078000180F0000180F0000000F0000000F0000000F0000000F0000000F000FFF0F000
FFF078000780780007807C0007803C0007801E0007801F0007800FC00F8003F03F8001FFFB8000
3FE1801C1C7E9B21>I<FFF3FFC0FFF3FFC00F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000F003C000FFFFC000FFFFC000F003C000F003C000F003C00
0F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FF
C0FFF3FFC01A1C7E9B1F>I<FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F
000F000F000F000F000F000F000F000F000F000F000F000F00FFF0FFF00C1C7F9B0F>I<FFF800
FFF8000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
0F00000F00000F00000F00180F00180F00180F00180F00380F00300F00700F00F00F01F0FFFFF0
FFFFF0151C7E9B1A>76 D<FF8000FF80FFC001FF800FC001F8000FC001F8000DE00378000DE003
78000DE00378000CF00678000CF00678000CF00678000C780C78000C780C78000C780C78000C3C
1878000C3C1878000C3C1878000C1E3078000C1E3078000C1E3078000C0F6078000C0F6078000C
0F6078000C07C078000C07C078000C07C078001E03807800FFC387FF80FFC387FF80211C7E9B26
>I<FF00FFC0FF80FFC00FC01E000FC00C000FE00C000DE00C000DF00C000CF80C000CF80C000C
7C0C000C3C0C000C3E0C000C1E0C000C1F0C000C0F8C000C078C000C07CC000C03CC000C03EC00
0C01FC000C00FC000C00FC000C007C000C007C000C003C001E001C00FFC01C00FFC00C001A1C7E
9B1F>I<003F800001FFF00003E0F80007001C000E000E001C0007003C00078038000380780003
C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E07800
03C0780003C0380003803C0007801E000F000E000E0007803C0003E0F80001FFF000003F80001B
1C7E9B20>I<FFFF80FFFFE00F00F00F00380F003C0F001E0F001E0F001E0F001E0F001E0F001E
0F003C0F00380F00F00FFFE00FFF800F00000F00000F00000F00000F00000F00000F00000F0000
0F00000F0000FFF000FFF000171C7E9B1C>I<FFFF0000FFFFE0000F00F0000F0038000F003C00
0F001E000F001E000F001E000F001E000F001E000F003C000F0038000F00F0000FFFE0000FFFC0
000F03F0000F00F0000F00F8000F0078000F0078000F0078000F0078000F0078000F0078000F00
7C300F007E70FFF03FE0FFF00FC01C1C7E9B1F>82 D<07F1801FFD803C1F80700780700380E003
80E00180E00180F00000F80000FE00007FE0003FFC001FFE000FFF0000FF80000F800007C00003
C00001C0C001C0C001C0E001C0E00380F00780FE0F00DFFE00C7F800121C7E9B17>I<7FFFFFC0
7FFFFFC0780F03C0700F01C0600F00C0E00F00E0C00F0060C00F0060C00F0060C00F0060000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F000003FFFC0003FFFC001B1C7F9B1E>I<FFF0
FFC0FFF0FFC00F001E000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F
000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C00
0F000C000F001C00078018000780380003C0700001F0F00000FFC000003F80001A1C7E9B1F>I<
FFE01FF0FFE01FF01F0007800F0003000F800700078006000780060007C00E0003C00C0003C00C
0001E0180001E0180001E0180000F0300000F0300000F870000078600000786000007CE000003C
C000003CC000001F8000001F8000001F8000000F0000000F0000000F0000000600001C1C7F9B1F
>I<FFE0FFE1FFFFE0FFE1FF1F001E007C0F001E00380F003F00300F003F003007803F00600780
678060078067806007C06780E003C0C3C0C003C0C3C0C003C0C3C0C001E1C3E18001E181E18001
E181E18000F181E30000F300F30000F300F30000FB00F700007E007E00007E007E00007E007E00
003E007C00003C003C00003C003C00001C0038000018001800281C7F9B2B>I<18183C3C383870
706060E0E0C0C0C0C0F8F8FCFCFCFC7C7C38380E0D7B9C15>92 D<1FE0003FF8003C3C003C1E00
180E00000E00001E0007FE003FFE007E0E00F80E00F80E00F00E60F00E60F81E607C7E607FFFC0
1FC78013127F9115>97 D<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C
00001C00001CFE001FFF801F87C01E03E01C01E01C00F01C00F01C00F01C00F01C00F01C00F01C
00F01C01E01E01E01E03C01F87C01BFF8018FE00141D7F9C17>I<07F80FFC3E3C3C3C78187800
F000F000F000F000F000F000780078063C0E3F1C0FF807F00F127F9112>I<001F80001F800003
8000038000038000038000038000038000038000038000038007F3801FFF803E1F807C07807803
80F80380F00380F00380F00380F00380F00380F00380F003807807807C0F803E1F801FFBF007E3
F0141D7F9C17>I<07E01FF83E7C781C781EF01EFFFEFFFEF000F000F000F000780078063C0E3F
1C0FF807F00F127F9112>I<00FC03FE079E071E0F1E0E000E000E000E000E000E00FFE0FFE00E
000E000E000E000E000E000E000E000E000E000E000E000E000E007FE07FE00F1D809C0D>I<07
E7C01FFFC03C3DC0781E00781E00781E00781E00781E00781E003C3C003FF80037E00070000070
00007800003FFC003FFF007FFF807807C0F003C0E001C0E001C0F003C0F807C07C0F801FFE0007
F800121B7F9115>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C0000
1C00001CFE001DFF001F8F801F07801E03801C03801C03801C03801C03801C03801C03801C0380
1C03801C03801C03801C0380FF9FF0FF9FF0141D7F9C17>I<3C007C007C007C003C0000000000
0000000000000000FC00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C
00FF80FF80091D7F9C0C>I<01C003E003E003E001C00000000000000000000000000FE00FE000
E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0F0E0
F1E0F3C0FF807E000B25839C0D>I<FC0000FC00001C00001C00001C00001C00001C00001C0000
1C00001C00001C00001C7FC01C7FC01C3E001C3C001C78001CF0001DE0001FE0001FF0001FF000
1E78001C7C001C3C001C1E001C1E001C0F00FF9FE0FF9FE0131D7F9C16>I<FC00FC001C001C00
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C00FF80FF80091D7F9C0C>I<FC7F07F000FDFF9FF8001F87F87C001F03F03C001E
01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
1C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF80FF8FF8FF8021127F9124>I<FCFE
00FDFF001F8F801F07801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03
801C03801C0380FF9FF0FF9FF014127F9117>I<03F0000FFC001E1E00380700780780700380F0
03C0F003C0F003C0F003C0F003C0F003C07003807807803807001E1E000FFC0003F00012127F91
15>I<FCFE00FFFF801F87C01E03E01C01E01C01F01C00F01C00F01C00F01C00F01C00F01C00F0
1C01E01E01E01E03C01F8FC01FFF801CFE001C00001C00001C00001C00001C00001C0000FF8000
FF8000141A7F9117>I<07F1801FF9803F1F803C0F80780780780380F00380F00380F00380F003
80F00380F00380F803807807807C0F803E1F801FFB8007E3800003800003800003800003800003
80000380001FF0001FF0141A7F9116>I<FDF0FFF81F781E781E301C001C001C001C001C001C00
1C001C001C001C001C00FFC0FFC00D127F9110>I<1FB07FF0F0F0E070E030F030F8007FC07FE0
1FF000F8C078C038E038F078F8F0FFF0CFC00D127F9110>I<0C000C000C000C000C001C001C00
3C00FFE0FFE01C001C001C001C001C001C001C001C001C301C301C301C301C301E700FE007C00C
1A7F9910>I<FC1F80FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1C03801C03801C07801C0F801E1F800FFFF007F3F014127F9117>I<FF0FE0FF0FE01C07801C07
000E06000E06000E0600070C00070C00071C0003980003980003F80001F00001F00000E00000E0
0000E00013127F9116>I<FF3FCFE0FF3FCFE03C0F07801C0F03001C1F03000E1B06000E1B8600
0E1B86000E318E000731CC000731CC000760CC0003E0F80003E0F80003E0F80001C0700001C070
0001C070001B127F911E>I<7F8FF07F8FF00F0F80070F00038E0001DC0001D80000F000007000
00780000F80001DC00038E00030E000707001F0780FF8FF8FF8FF81512809116>I<FF0FE0FF0F
E01C07801C07000E06000E06000E0600070C00070C00071C0003980003980003F80001F00001F0
0000E00000E00000E00000C00000C00000C000F18000F18000C700007E00003C0000131A7F9116
>I<7FFC7FFC783C707860F061E061E063C00780078C0F0C1E0C1E1C3C187818F078FFF8FFF80E
127F9112>I E /Fm 27 91 df<001F0000003F8000007B80000071800000E1800000E1800000E1
800000C3800001C7000001CE000001DE000001FC1FF801F81FF801E0078001E0070007E006000F
E00E001EF01C003C7038007878300078787000F03CE000F01FC000F01F8000F00F0060F80F80C0
7C7FE1C03FF1FF801FC07E001D1D7D9C20>38 D<7FF0FFE0FFE00C037F890E>45
D<7878F8F87005057D840C>I<0010007003F01FF01C70007000F000E000E000E000E000E001E0
01C001C001C001C001C003C0038003800380038003800780FFF8FFF80D1B7C9A15>49
D<00FE0003FF00078F800F07C00F03C00F03C00F0780000780000F80001F00003E0003FC0003F8
00001C00000E00000F00000F00000F00000F00780F00F80F00F81F00F81E00F03C00F07C007FF0
001FC000121B7D9A15>51 D<07018007FF8007FF0007FC000600000E00000C00000C00000C0000
0C00000DF8001FFE001F1E001C0F00180700000700000780000F80000F00F00F00F00F00F01F00
F01E00E03C0070F8007FF0001FC000111B7D9A15>53 D<1800003FFFC03FFFC03FFFC070038060
0700600E00C00C00001C0000380000700000E00000C00001C0000380000380000780000700000F
00000F00000E00001E00001E00001E00001E00003E00003C00001C0000121C7B9B15>55
D<00FE0003FF0007C7800F03800E03C00E03C01E03801E03801F07801F8F000FFE000FFC0003F8
0007FE001EFE003C3F00781F00700F00F00700E00700E00700E00700F00E00701E007C7C003FF0
000FC000121B7D9A15>I<01F80007FE000F8E001E07003C07003C07807C078078078078078078
0780780F80780F80780F00781F00383F003FFF001FEF00021E00001E00001C00F03C00F03800F0
7800E0F000E3E000FF80003E0000111B7C9A15>I<00007000000070000000F0000000F0000001
F0000001F80000037800000378000006780000067800000C7800000C3C0000183C0000183C0000
303C0000303C0000603C0000601E0000FFFE0000FFFE0001801E0001801E0003001F0003000F00
07000F000F000F007FC0FFF0FFC0FFF01C1C7F9B1F>65 D<000FF030003FFC7000FC0EE003F007
E007C003E00F8001E01F0001E01E0000E03C0000C03C0000C0780000C07800000078000000F800
0000F0000000F0000000F0000000F0000000F0000380F000030078000300780007003C000E003E
001C001F003C000FC0F00003FFE00000FF00001C1C7C9B1E>67 D<0FFFFC000FFFFF8000F007C0
00F001E000F000F000F0007000F0007801F0007801E0003801E0003801E0003801E0003C01E000
3803E0003803C0007803C0007803C0007803C0007003C000F007C000E0078001E0078001C00780
03800780078007800E000F807C00FFFFF000FFFFC0001E1C7E9B20>I<0FFFFFE00FFFFFE000F0
03E000F001C000F000C000F000C000F000C001F060C001E060C001E060C001E0600001E1E00001
FFE00003FFC00003C1C00003C0C00003C0C00003C0C0C003C0C18007C001800780018007800300
078003000780070007800E000F803E00FFFFFE00FFFFFC001B1C7E9B1C>I<000FF030003FFC70
00FC0EE003F007E007C003E00F8001E01F0001E01E0000E03C0000C03C0000C0780000C0780000
0078000000F8000000F0000000F0000000F000FFF0F000FFF0F0000F80F0000F8078000F007800
0F003C000F003E001F001F001F000FC07F0003FFF60000FF82001C1C7C9B21>71
D<0FFF9FFE0FFF3FFE00F003C000F003C000F003C000F003C000F007C001F007C001E0078001E0
078001E0078001E0078001FFFF8003FFFF8003C00F0003C00F0003C00F0003C00F0003C01F0007
C01F0007801E0007801E0007801E0007801E0007803E000F803E00FFF3FFE0FFF3FFC01F1C7E9B
1F>I<0FFF800FFF8000F00000F00000F00000F00000F00001F00001E00001E00001E00001E000
01E00003E00003C00003C00003C00003C00003C00007C000078000078000078000078000078000
0F8000FFF800FFF800111C7F9B0F>I<0FFFC00FFFC000F00000F00000F00000F00000F00001F0
0001E00001E00001E00001E00001E00003E00003C00003C00003C00003C00603C00C07C00C0780
0C07801C0780180780380780780F81F8FFFFF0FFFFF0171C7E9B1A>76 D<0FFC000FFC0FFC000F
FC00FC001F8000FC001F8000FC00378000DE00378000DE006F8001DE006F80019E00CF00019E00
CF00019E018F00018F018F00018F031F00038F031F00030F061E00030F061E0003078C1E000307
8C1E000307983E000707983E000607B03C000607B03C000603E03C000603E03C000603C07C001E
03C07C00FFE387FFC0FFC387FF80261C7E9B26>I<0FF80FFE0FF80FFE00FC01E000FC00C000FE
00C000DE00C000DE01C001DF01C0018F0180018F8180018781800187C1800187C3800383C38003
03E3000301E3000301F3000300F3000300FF000700FF0006007E0006007E0006003E0006003E00
06001E001E001E00FFE01C00FFC00C001F1C7E9B1F>I<0007F000003FFC0000F81E0001E00700
03800380070003C00E0001C01E0001E03C0001E03C0000E0780000E0780000F0780000E0F00001
E0F00001E0F00001E0F00001E0F00003C0F00003C0F00007807800078078000F0038001E003C00
3C001E0078000F81F00003FFC00000FE00001C1C7C9B20>I<0FFFFC000FFFFF0000F00F8000F0
038000F003C000F001C000F001C001F003C001E003C001E003C001E0038001E0078001E00F0003
E03E0003FFF80003FFE00003C0000003C0000003C0000007C00000078000000780000007800000
078000000F8000000F800000FFF80000FFF000001A1C7E9B1C>I<0FFFF8000FFFFE0000F00F80
00F0038000F003C000F001C000F001C001F003C001E003C001E003C001E0078001E00F0001E03E
0003FFF80003FFF80003C0FC0003C03C0003C03C0003C03E0007C03C0007803C0007803C000780
3C0007803C0007803C380F803E70FFF81FF0FFF00FE01D1C7E9B1F>82 D<007F0C01FFDC03C1F8
0780780F00380E00380E00381E00381E00001F00001F80000FF8000FFF0007FFC001FFE0003FE0
0003E00001E00000E00000E06000E06000E06001E07001C0780380FE0F80FFFE00C3F800161C7E
9B17>I<1FFFFFF03FFFFFF03C0781F038078060700780606007806060078060600F8060C00F00
60C00F0060000F0000000F0000000F0000001F0000001E0000001E0000001E0000001E0000001E
0000003E0000003C0000003C0000003C0000003C0000003C0000007C00001FFFE0001FFFE0001C
1C7C9B1E>I<FFF8FFE0FFF8FFE00F001E000F000C000F000C000F000C000F001C001F001C001E
0018001E0018001E0018001E0018001E0038003E0038003C0030003C0030003C0030003C003000
3C0070007C006000780060007800E0003800C0003C01C0003E0380001F0F00000FFE000003F800
001B1C7A9B1F>I<FFF01FF8FFF01FF80F0007C00F0003000F0007000780060007800C0007800C
00078018000780180003C0300003C0300003C0600003C0600003C0C00003E0C00001E1800001E3
800001E3000001E7000001F6000000FE000000FC000000F8000000F8000000F000000070000000
6000001D1C7B9B1F>I<03FFFF8007FFFF0007E01F0007803E0007007C00060078000600F8000E
01F0000C03E0000C07C0000007C000000F8000001F0000003E0000007C0000007C000000F80C00
01F00C0003E0180003C0180007C018000F8038001F0030003E0070003E00F0007C03F000FFFFE0
00FFFFE000191C7E9B19>90 D E /Fn 29 122 df<70F8FCFC7C0C0C0C1C18183870E0E0060F7C
840E>44 D<018003800F80FF80F380038003800380038003800380038003800380038003800380
03800380038003800380038003800380038003800380038003800380FFFEFFFE0F217CA018>49
D<03F8000FFE003C3F00380F807007C06007C0E003E0F803E0F803E0F801E0F801E07003E00003
E00003C00007C00007C0000F80000F00001E00003C0000780000F00000E00001C0000380000700
600E00601C00603800E07000C0FFFFC0FFFFC0FFFFC013217EA018>I<03F8000FFE001E1F0038
0F807007C07807C07C07C07807C07807C00007C00007C0000780000F80001F00003E0003FC0003
F800001E00000F000007800007C00003E00003E07003E0F803E0F803E0F803E0F803E0E007C070
07C0780F803E1F000FFE0003F80013227EA018>I<000E00000E00001E00001E00003E00003E00
006E0000EE0000CE0001CE00018E00030E00070E00060E000E0E000C0E00180E00180E00300E00
700E00600E00E00E00FFFFF8FFFFF8000E00000E00000E00000E00000E00000E00000E0001FFF0
01FFF015217FA018>I<03F8000FFC001F1E003C07003807807803807003C0F003C0F001C0F001
C0F001E0F001E0F001E0F001E0F001E0F003E07803E07803E03C07E03E0FE01FFDE007F9E00081
E00001C00003C00003C0000380780780780700780F00781E00787C003FF8000FE00013227EA018
>57 D<000180000003C0000003C0000003C0000007E0000007E0000007E000000FF000000CF000
000CF000001CF800001878000018780000383C0000303C0000303C0000601E0000601E0000601E
0000C00F0000C00F0000C00F0001FFFF8001FFFF8001800780030003C0030003C0030003C00600
01E0060001E0060001E00E0000F01F0001F0FFC00FFFFFC00FFF20237EA225>65
D<000FF030007FFC3000FC1E7003F0077007C003F00F8001F01F0001F01F0000F03E0000F03C00
00707C0000707C0000707C000030F8000030F8000030F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F80000307C0000307C0000307C0000303E0000703E0000601F0000E0
1F0000C00F8001C007C0038003F0070000FC1E00007FFC00000FF0001C247DA223>67
D<03FFF003FFF0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00F80F00F80F00F80F00F81F00F01E00703E00787C003FF8000FE00014237EA119>74
D<FFFE0000FFFE0000078000000780000007800000078000000780000007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780000007
800000078000000780018007800180078001800780018007800380078003800780030007800700
0780070007800F0007803F00FFFFFF00FFFFFF0019227EA11E>76 D<FFC00003FFFFE00007FF07
E00007E007E00007E006F0000DE006F0000DE006F0000DE006780019E006780019E006780019E0
063C0031E0063C0031E0063C0031E0061E0061E0061E0061E0061E0061E0060F00C1E0060F00C1
E006078181E006078181E006078181E00603C301E00603C301E00603C301E00601E601E00601E6
01E00601E601E00600FC01E00600FC01E00600FC01E006007801E01F807801E0FFF0783FFFFFF0
303FFF28227EA12D>I<07F0600FFE601E1FE03807E07003E07001E0E000E0E000E0E00060E000
60F00060F00000F800007C00007F00003FF0001FFE000FFF8003FFC0007FC00007E00001E00001
F00000F00000F0C00070C00070C00070E00070E000F0F000E0F801E0FC01C0FF0780C7FF00C1FC
0014247DA21B>83 D<1FF0003FFC003C3E003C0F003C0F00000700000700000F0003FF001FFF00
3F07007C0700F80700F80700F00718F00718F00F18F81F187C3FB83FF3F01FC3C015157E9418>
97 D<03FE000FFF801F07803E07803C0780780000780000F00000F00000F00000F00000F00000
F00000F000007800007800C03C01C03E01801F87800FFF0003FC0012157E9416>99
D<0000E0000FE0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E003F8E00FFEE01F0FE03E03E07C01E07800E07800E0F000E0F000E0F000E0F000E0F000
E0F000E0F000E07000E07801E07801E03C03E01F0FF00FFEFE03F0FE17237EA21B>I<01FC0007
FF001F0F803E03C03C01C07801E07801E0FFFFE0FFFFE0F00000F00000F00000F00000F0000078
00007800603C00E03E01C00F83C007FF0001FC0013157F9416>I<0E0000FE0000FE00001E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3F800EFFE00FE1E0
0F80F00F00700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E00700E00700E0070FFE7FFFFE7FF18237FA21B>104 D<1E003E003E003E001E000000000000
00000000000000000000000E00FE00FE001E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E00FFC0FFC00A227FA10E>I<01C003E003E003E001C00000000000000000
000000000000000001E00FE00FE001E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E000E000E000E0F1E0F1C0F3C0FF803E000B2C82A10F>I<0E
0000FE0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
00000E0FFC0E0FFC0E07E00E07800E07000E1E000E3C000E78000EF8000FFC000FFC000F1E000E
0F000E0F800E07800E03C00E03E00E01E00E01F0FFE3FEFFE3FE17237FA21A>I<0E00FE00FE00
1E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B237FA20E>I<0E3FC0FF00FEFF
F3FFC0FFE0F783C01F807E01E00F003C00E00F003C00E00E003800E00E003800E00E003800E00E
003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E0
0E003800E00E003800E0FFE3FF8FFEFFE3FF8FFE27157F942A>I<0E3F80FEFFE0FFE1E01F80F0
0F00700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E00700E0070FFE7FFFFE7FF18157F941B>I<01FC0007FF000F07801C01C03800E07800F07000
70F00078F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00F078007FF
0001FC0015157F9418>I<0E7EFEFFFFEF1F8F0F0F0F000F000E000E000E000E000E000E000E00
0E000E000E000E000E00FFF0FFF010157F9413>114 D<1FD83FF87878F038E018E018F018F800
7F807FE01FF003F8007CC03CC01CE01CE01CF03CF878FFF0CFE00E157E9413>I<060006000600
060006000E000E000E001E003E00FFF8FFF80E000E000E000E000E000E000E000E000E000E000E
0C0E0C0E0C0E0C0E0C0F1C073807F803E00E1F7F9E13>I<0E0070FE07F0FE07F01E00F00E0070
0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F00E01F0
0787F807FF7F01FC7F18157F941B>I<FFC3FEFFC3FE1E00F80E00700E00E00700C00700C00700
C003818003818003C38001C30001C30000E60000E60000E600007C00007C00007C000038000038
00003000003000007000006000006000F0C000F1C000F380007F00003E0000171F7F941A>121
D E /Fo 16 121 df<78FCFCFEFE7E06060606060E0C0C1C383870E0C007147A8512>44
D<00003FE0030001FFFC030007F01E07001F800787003E0001CF00FC0000EF01F800007F03F000
007F03E000003F07C000001F0FC000001F0F8000000F1F8000000F3F000000073F000000073E00
0000077E000000077E000000037E000000037C00000003FC00000000FC00000000FC00000000FC
00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000
7C000000007E000000037E000000037E000000033E000000033F000000073F000000061F800000
060F8000000E0FC000000C07C000001C03E000001803F000003801F800007000FC0000E0003F00
01C0001F8007800007F01F000001FFFC0000003FE00028337CB130>67 D<00003FF001800001FF
FC01800007F81F0380001FC0038380003F0001E780007C0000E78001F800007F8001F000003F80
03E000001F8007C000000F800FC000000F800F80000007801F80000007801F00000003803F0000
0003803E00000003807E00000003807E00000001807E00000001807C0000000180FC0000000000
FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000
000000FC0000000000FC0000000000FC00000FFFFC7E00000FFFFC7E0000001FC07E0000000F80
7E0000000F803E0000000F803F0000000F801F0000000F801F8000000F800F8000000F800FC000
000F8007E000000F8003E000000F8001F000001F8001F800001F80007E00003F80003F00007780
001FC001E3800007F80FC1800001FFFF008000003FF800002E337CB134>71
D<03FF00000FFFC0001E03F0003E00F8003E007C003E003C003E003E001C001E0000001E000000
1E0000001E0000001E000003FE00007FFE0003FF1E0007F01E001FC01E003F001E007E001E007C
001E00FC001E00F8001E0CF8001E0CF8001E0CF8003E0CFC007E0C7C007E0C7E01FF1C3F87CFB8
1FFF07F003FC03C01E1F7D9E21>97 D<003FE001FFF803E03C07C03E0F003E1F003E3E003E3C00
1C7C00007C0000780000F80000F80000F80000F80000F80000F80000F80000F80000F800007C00
007C00007C00003E00033E00071F00060F800E07C01C03F07801FFF0003F80181F7D9E1D>99
D<003F800001FFF00003E1F80007807C000F003E001E001E003E001F003C000F007C000F807C00
0F8078000F80F8000780FFFFFF80FFFFFF80F8000000F8000000F8000000F8000000F8000000F8
0000007C0000007C0000007C0000003E0001803E0003801F0003000F80070007E00E0003F83C00
00FFF800003FC000191F7E9E1D>101 D<0F001F801F801F801F800F0000000000000000000000
0000000000000000000000000780FF80FF800F8007800780078007800780078007800780078007
80078007800780078007800780078007800780078007800780078007800FC0FFF8FFF80D307EAF
12>105 D<0781FE003FC000FF87FF80FFF000FF9E0FC3C1F8000FB803E7007C0007F001EE003C
0007E001FC003E0007E000FC001E0007C000F8001E0007C000F8001E00078000F0001E00078000
F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>109
D<0781FE0000FF87FF8000FF9E0FC0000FB803E00007F001E00007E001F00007E000F00007C000
F00007C000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078000F000078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80
211F7E9E25>I<001FC00000FFF80001E03C0007800F000F0007801E0003C01E0003C03C0001E0
3C0001E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000
F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F00078007C0
1F0001F07C0000FFF800001FC0001D1F7E9E21>I<0781FE00FF87FF80FF9F0FE00FB803F007F0
01F807E000F807C0007C0780007C0780003E0780003E0780003E0780001F0780001F0780001F07
80001F0780001F0780001F0780001F0780001F0780003F0780003E0780003E0780007E07C0007C
07C000FC07E000F807F001F007B803E0079E0FC0078FFF800781FC000780000007800000078000
0007800000078000000780000007800000078000000780000007800000078000000FC00000FFFC
0000FFFC0000202D7E9E25>I<0787F0FF8FF8FFBC7C0FB87C07F07C07E07C07E00007C00007C0
0007C0000780000780000780000780000780000780000780000780000780000780000780000780
000780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19>114
D<03FE300FFFF03E07F07801F07000F0E00070E00070E00030E00030F00030F800007F00007FF0
003FFF000FFFC003FFE0003FF00003F80000F8C0007CC0003CE0001CE0001CE0001CF0001CF800
38F80038FC00F0EF03F0C7FFC0C1FF00161F7E9E1A>I<00C00000C00000C00000C00000C00001
C00001C00001C00003C00003C00007C0000FC0001FC000FFFFE0FFFFE003C00003C00003C00003
C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C03003C03003C03003C03003C03003C03003C03003C07001E06001E0E000F9C000FFC0003F0014
2C7FAB19>I<078000F000FF801FF000FF801FF0000F8001F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8001F000078001F000078001F000078003F00003C007F00003C00EF00001F03CF80000FFF8FF80
003FC0FF80211F7E9E25>I<FFF807FF00FFF807FF000FE003F80007E003E00003E003C00001E0
03800000F00700000078060000007C0C0000003C1C0000001E380000000F300000000FE0000000
07E000000003C000000003E000000003F000000007F00000000E780000000C7C000000183E0000
00381E000000700F000000600F800000C007C00001C003C00003C001E00007C001F0001FC003F8
00FFE007FFC0FFE007FFC0221F7F9E23>120 D E /Fp 5 85 df<00000000C00000000000E000
00000001E00000000003E00000000003E00000000007E00000000007E0000000000FE000000000
0FE0000000001FE0000000001FE00000000037E00000000067E00000000067E000000000C7E000
000000C7F00000000183F00000000183F00000000303F00000000703F00000000603F00000000C
03F00000000C03F00000001803F00000001803F00000003003F00000003003F00000006003F000
0000C003F0000000C003F00000018003F00000018003F8000003FFFFF8000003FFFFF800000600
01F800000E0001F800000C0001F80000180001F80000180001F80000300001F80000300001F800
00600001F80000E00001F80000C00001F80001C00001F80001C00001F80007C00001FC001FC000
03FC00FFF8007FFFE0FFF8007FFFE02B327BB135>65 D<000FFFFFFE0000000FFFFFFF80000000
00FFFFFFFC000000FFFFFFE000000031317BB036>68 D<000FFFFFFFFC000FFFFFFFFC00007F00
01FC00007E00007C00007E00003C00007E00003C00007E0000180000FC0000180000FC00001800
00FC0000180000FC0000180001F80000180001F80000180001F80000180001F80000180003F000
80100003F00180000003F00180000003F00180000007E00300000007E00300000007E007000000
07E01F0000000FFFFE0000000FFFFE0000000FC01E0000000FC00E0000001F800C0000001F800C
0000001F800C0000001F800C0000003F00180000003F00080000003F00000000003F0000000000
7E00000000007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC0000
000000FC0000000001F80000000001F80000000001F80000000003F800000000FFFFF0000000FF
FFF00000002E317BB02F>70 D<000FFFFFF000000FFFFFFE0000007F003F8000007E000FC00000
7E0007E000007E0003F000007E0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001
F80001F80003F80001F80003F80001F80003F80001F80003F00003F00007F00003F00007E00003
F0000FC00003F0000FC00007E0001F000007E0007E000007E000FC000007E007F000000FFFFFC0
00000FFFFF0000000FC00F8000000FC003C000001F8003E000001F8001F000001F8001F000001F
8001F800003F0001F800003F0001F800003F0001F800003F0001F800007E0003F800007E0003F8
00007E0003F000007E0003F00000FC0007F00000FC0007F00000FC0007F00800FC0007F00C01F8
0007F01801F80007F01801F80003F03003F80003F030FFFFE001F0E0FFFFE000FFC0000000003F
002E327BB034>82 D<07FFFFFFFFF00FFFFFFFFFF00FC00FE003F01E000FC000F01C000FC000E0
18000FC000E038000FC0006030001F8000E030001F8000E060001F8000C060001F8000C060003F
0000C0C0003F0000C0C0003F0000C0C0003F0000C080007E00008000007E00000000007E000000
00007E0000000000FC0000000000FC0000000000FC0000000000FC0000000001F80000000001F8
0000000001F80000000001F80000000003F00000000003F00000000003F00000000003F0000000
0007E00000000007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC0
000000000FC0000000001F80000000001F80000000001F80000000001F80000000003F00000000
003F00000000003F0000000000FF00000000FFFFFF000000FFFFFF0000002C3173B033>84
D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin 
%%EndSetup
%%Page: 0 1
bop 795 996 a Fp(D)26 b(R)g(A)f(F)h(T)476 1088 y Fo(Groups,)c(Con)n(texts,)f
(Comm)n(unicators)353 1270 y Fn(Lyndon)c(Clark)o(e,)e(Mark)h(Sears,)g(An)o
(thon)o(y)g(Skjellum,)d(Marc)j(Snir)828 1391 y(June)h(24,)f(1993)p
eop
%%Page: 1 2
bop 75 -100 a Fm(3.1.)31 b(INTR)o(ODUCTION)1343 b Fl(1)75 45
y Fk(3.1)70 b(In)n(tro)r(duction)75 147 y Fl(It)11 b(is)f(highly)f(desirable)
i(that)g(pro)q(cesses)i(executing)e(a)f(parallel)f(pro)q(cedure)k(use)e(a)f
(\\virtual)g(pro)q(cess)i(name)d(space")75 197 y(lo)q(cal)14
b(to)h(the)g(in)o(v)o(o)q(cation.)20 b(Th)o(us,)15 b(the)h(co)q(de)g(of)e
(the)i(parallel)d(pro)q(cedure)k(will)d(lo)q(ok)g(iden)o(tical,)g(irresp)q
(ectiv)o(e)j(of)75 247 y(the)12 b(absolute)f(addresses)i(of)d(the)h
(executing)h(pro)q(cesses.)20 b(It)11 b(is)g(often)g(the)g(case)h(that)f
(parallel)f(application)f(co)q(de)j(is)75 296 y(built)f(b)o(y)g(comp)q(osing)
f(sev)o(eral)i(parallel)f(mo)q(dules)f(\()p Fj(e.g.)p Fl(,)h(a)h(n)o
(umerical)e(solv)o(er,)h(and)h(a)f(graphic)g(displa)o(y)g(mo)q(dule\).)75
346 y(Supp)q(ort)h(of)f(a)h(virtual)f(name)f(space)j(for)e(eac)o(h)h(mo)q
(dule)f(will)f(allo)o(w)g(for)h(the)i(comp)q(osition)d(of)h(mo)q(dules)f
(that)i(w)o(ere)75 396 y(dev)o(elop)q(ed)18 b(separately)h(without)e(c)o
(hanging)g(all)f(message)i(passing)f(calls)h(within)f(eac)o(h)h(mo)q(dule.)28
b(The)18 b(set)h(of)75 446 y(pro)q(cesses)d(that)d(execute)i(a)e(parallel)f
(pro)q(cedure)j(ma)o(y)c(b)q(e)j(\014xed,)g(or)f(ma)o(y)e(b)q(e)j(determined)
f(dynamically)d(b)q(efore)75 496 y(the)19 b(in)o(v)o(o)q(cation.)31
b(Th)o(us,)20 b(MPI)f(has)g(to)f(pro)o(vide)h(a)f(mec)o(hanism)e(for)j
(dynamically)c(creating)k(sets)h(of)e(lo)q(cally)75 545 y(named)h(pro)q
(cesses.)37 b(W)m(e)20 b(alw)o(a)o(ys)e(n)o(um)o(b)q(er)h(pro)q(cesses)j
(that)e(execute)i(a)d(parallel)f(pro)q(cedure)k(consecutiv)o(ely)m(,)75
595 y(starting)17 b(from)d(zero,)k(and)e(call)g(this)h(n)o(um)o(b)q(ering)e
Fi(rank)k(in)f(group)p Fl(.)24 b(Th)o(us,)17 b(a)f Fi(group)f
Fl(is)i(an)f(ordered)i(set)g(of)75 645 y(pro)q(cesses,)e(where)f(pro)q
(cesses)i(are)d(iden)o(ti\014ed)g(b)o(y)g(their)g(ranks)g(when)g(comm)o
(unication)d(o)q(ccurs.)158 701 y(Comm)o(uni)o(cation)f Fh(contexts)h
Fl(partition)g(the)j(message-passing)e(space)h(in)o(to)f(separate,)i
(manageable)d(\\uni-)75 751 y(v)o(erses.")31 b(Sp)q(eci\014cally)m(,)17
b(a)h(send)g(made)f(in)g(a)g(con)o(text)i(cannot)f(b)q(e)g(receiv)o(ed)h(in)e
(another)h(con)o(text.)30 b(Con)o(texts)75 800 y(are)14 b(iden)o(ti\014ed)g
(in)g(MPI)g(using)g(in)o(teger-v)n(alued)f Fi(con)o(texts)g
Fl(that)h(reside)h(within)e Fh(communicator)e Fl(ob)r(jects.)20
b(The)75 850 y(con)o(text)14 b(mec)o(hanism)e(is)i(need)g(to)g(allo)o(w)e
(predictable)i(b)q(eha)o(vior)g(in)f(subprograms,)g(and)g(to)h(allo)o(w)e
(dynamicism)75 900 y(in)g(message)g(usage)g(that)h(cannot)f(b)q(e)h
(reasonably)f(an)o(ticipated)g(or)g(managed.)k(Normally)m(,)9
b(a)j(parallel)f(pro)q(cedure)75 950 y(is)g(written)g(so)g(that)g(all)f
(messages)h(pro)q(duced)h(during)f(its)g(execution)h(are)f(also)f(consumed)h
(b)o(y)g(the)g(pro)q(cesses)j(that)75 1000 y(execute)i(the)f(pro)q(cedure.)22
b(Ho)o(w)o(ev)o(er,)15 b(if)f(one)g(parallel)g(pro)q(cedure)i(calls)e
(another,)h(then)g(it)f(migh)o(t)e(b)q(e)k(desirable)75 1049
y(to)h(allo)o(w)e(suc)o(h)j(call)e(to)h(pro)q(ceed)i(while)e(messages)g(are)g
(p)q(ending)g(\(the)h(messages)f(will)f(b)q(e)i(consumed)f(b)o(y)f(the)75
1099 y(pro)q(cedure)d(after)f(the)g(call)f(returns\).)19 b(In)12
b(suc)o(h)g(case,)h(a)e(new)h(comm)o(unicatio)o(n)d(con)o(text)j(is)g(needed)
h(for)e(the)h(called)75 1149 y(parallel)h(pro)q(cedure,)i(ev)o(en)g(if)e(the)
h(transfer)h(of)e(con)o(trol)h(is)g(sync)o(hronized.)158 1205
y(The)k(comm)o(unication)c(domain)h(used)k(b)o(y)e(a)h(parallel)e(pro)q
(cedure)k(is)d(iden)o(ti\014ed)h(b)o(y)f(a)g Fi(comm)o(unicator)p
Fl(.)75 1255 y(Comm)o(uni)o(cators)c(bring)h(together)i(the)f(concepts)i(of)d
(pro)q(cess)j(group)d(and)h(comm)o(unicatio)o(n)d(con)o(text.)22
b(A)14 b(com-)75 1304 y(m)o(unicator)g(is)i(an)g(explicit)g(parameter)g(in)f
(eac)o(h)i(p)q(oin)o(t-to-p)q(oin)o(t)d(comm)o(unication)f(op)q(eration.)24
b(The)17 b(comm)o(u-)75 1354 y(nicator)f(iden)o(ti\014es)g(the)g(comm)o
(unicatio)o(n)d(con)o(text)j(of)f(that)h(op)q(eration;)g(it)f(iden)o
(ti\014es)i(the)f(group)f(of)g(pro)q(cesses)75 1404 y(that)j(can)f(b)q(e)h
(in)o(v)o(olv)o(ed)f(in)g(this)g(comm)o(unication;)f(and)h(it)g(pro)o(vides)h
(the)g(translation)f(from)e(virtual)i(pro)q(cess)75 1454 y(names,)e(whic)o(h)
g(are)h(ranks)g(within)f(the)h(group,)f(in)o(to)g(absolute)h(addresses.)25
b(Collectiv)o(e)15 b(comm)o(unication)d(calls)75 1504 y(also)i(tak)o(e)g(a)g
(comm)o(unicator)d(as)k(parameter;)e(it)h(is)h(exp)q(ected)h(that)e(parallel)
f(libraries)h(will)f(b)q(e)i(built)f(to)g(accept)75 1553 y(a)g(comm)o(uni)o
(cator)e(as)i(parameter.)j(Comm)o(unicators)11 b(are)k(represen)o(ted)h(b)o
(y)e(opaque)g(MPI)g(ob)r(jects.)158 1609 y(MPI)i(do)q(es)g(not)g(rev)o(eal)f
(absolute)h(pro)q(cess)i(names.)k(Rather,)16 b(pro)q(cesses)i(are)e(alw)o(a)o
(ys)e(iden)o(ti\014ed)i(b)o(y)g(their)75 1659 y(rank)c(inside)h(a)f(group.)17
b(New)c(pro)q(cess)h(groups)f(are)g(built)e(b)o(y)h(subsetting)i(and)e
(reordering)h(pro)q(cesses)i(within)d(ex-)75 1709 y(isting)e(groups,)g(as)h
(w)o(ell)e(as)h(b)o(y)g(\\publishing)f(and)i(subscribing")f(or)g
(\\\015attening)g(and)g(un\015attening.")17 b(Publishing)75
1759 y(and)g(subscribing)h(pro)o(vides)f(a)g(serv)o(er-lik)o(e)h(mec)o
(hanism)c(to)j(allo)o(w)f(rendezv)o(ous)j(b)q(et)o(w)o(een)f(disjoin)o(t)e
(comm)o(uni-)75 1808 y(cating)d(pro)q(cesses.)21 b(Flatten)14
b(and)f(un\015atten)h(allo)o(ws)f(the)h(transmission)e(of)h(groups)h(or)g
(comm)o(uni)o(cators)e(in)h(user)75 1858 y(messages.)k(Subsetting)c(and)f
(reordering)g(allo)o(ws)f(the)h(user)h(to)f(construct)h(subgroups)g(giv)o(en)
e(an)h(existing)g(group.)75 2027 y Fk(3.2)70 b(Groups)75 2129
y Fl(A)16 b Fi(group)f Fl(is)h(an)f(ordered)j(set)f(of)e(pro)q(cess)j(iden)o
(ti\014ers)f(\(henceforth)g(pro)q(cesses\);)j(pro)q(cess)e(iden)o(ti\014ers)f
(are)f(im-)75 2178 y(plemen)o(tation)e(dep)q(enden)o(t;)k(a)e(group)f(is)h
(an)g(opaque)f(ob)r(ject.)25 b(Eac)o(h)16 b(pro)q(cess)i(in)d(a)g(group)h(is)
g(asso)q(ciated)g(with)75 2228 y(an)e(in)o(teger)g Fi(rank)p
Fl(,)f(starting)h(from)e(zero.)158 2284 y(Groups)17 b(are)g(represen)o(ted)i
(b)o(y)e(opaque)f Fi(group)i(ob)s(jects)p Fl(,)d(and)h(hence)i(cannot)f(b)q
(e)g(directly)g(transferred)75 2334 y(from)12 b(one)i(pro)q(cess)i(to)e
(another.)75 2502 y Fk(3.3)70 b(Con)n(text)75 2604 y Fl(A)15
b Fi(con)o(text)e Fl(is)i(the)h(MPI)f(mec)o(hanism)d(for)j(partitioning)f
(comm)o(uni)o(cation)e(space.)22 b(A)15 b(de\014ning)g(prop)q(ert)o(y)h(of)e
(a)75 2654 y(con)o(text)j(is)g(that)g(a)f(send)i(made)d(in)h(a)h(con)o(text)g
(cannot)g(b)q(e)g(receiv)o(ed)h(in)e(another)h(con)o(text.)28
b(A)16 b(con)o(text)i(is)e(an)75 2704 y(in)o(teger.)p eop
%%Page: 2 3
bop 75 -100 a Fl(2)75 45 y Fk(3.4)70 b(Comm)n(unicators)75
138 y Fl(All)12 b(MPI)g(comm)o(unication)d(\(b)q(oth)k(p)q(oin)o(t-to-p)q
(oin)o(t)e(and)i(collectiv)o(e\))f(functions)h(use)g Fi(comm)o(unicators)d
Fl(to)i(pro-)75 188 y(vide)i(a)f(sp)q(eci\014c)j(scop)q(e)f(\(con)o(text)f
(and)g(group)g(sp)q(eci\014cations\))h(for)e(the)i(comm)o(unicatio)o(n.)g(In)
f(short,)g(comm)o(uni-)75 238 y(cators)h(bring)e(together)i(the)g(concepts)h
(of)d(group)h(and)g(con)o(text;)g(\(furthermore,)g(to)g(supp)q(ort)h(implem)o
(en)o(tation-)75 288 y(sp)q(eci\014c)i(optimizations,)12 b(and)j(virtual)g
(top)q(ologies,)f(they)i(\\cac)o(he")f(additional)f(information)e
(opaquely\).)22 b(The)75 338 y(source)17 b(and)f(destination)f(of)g(a)h
(message)f(is)h(iden)o(ti\014ed)g(b)o(y)f(the)i(rank)e(of)g(that)h(pro)q
(cess)i(within)d(the)h(group;)g(no)75 387 y(a)f(priori)h(mem)o(b)q(ership)e
(restrictions)j(on)e(the)i(pro)q(cess)g(sending)f(or)g(receiving)g(the)g
(message)g(are)g(implied.)21 b(F)m(or)75 437 y(collectiv)o(e)d(comm)o
(unicati)o(on,)d(the)k(comm)o(unicator)c(sp)q(eci\014es)k(the)f(set)h(of)e
(pro)q(cesses)k(that)c(participate)h(in)f(the)75 487 y(collectiv)o(e)f(op)q
(eration.)23 b(Th)o(us,)16 b(the)h(comm)o(uni)o(cator)c(restricts)18
b(the)e(\\spatial")f(scop)q(e)i(of)e(comm)o(unicatio)o(n,)e(and)75
537 y(pro)o(vides)h(lo)q(cal)f(pro)q(cess)j(addressing.)158
671 y Fg(Discussion:)37 b Ff(`Comm)o(unicator')14 b(replaces)h(the)f(w)o(ord)
f(`con)o(text')h(ev)o(erywhere)g(in)g(curren)o(t)g(pt2pt)g(and)g(collcomm)75
720 y(drafts.)158 854 y Fl(Comm)o(uni)o(cators)19 b(are)h(represen)o(ted)k(b)
o(y)c(opaque)g Fi(comm)o(unicator)h(ob)s(jects)p Fl(,)f(and)g(hence)i(cannot)
e(b)q(e)75 904 y(directly)14 b(transferred)i(from)c(one)i(pro)q(cess)i(to)d
(another.)75 1027 y Fe(3.4.1)55 b(Prede\014ned)18 b(Comm)n(unicators)75
1106 y Fl(Initial)12 b(comm)o(unicators)g(de\014ned)j(once)f
Fh(MPI)p 792 1106 14 2 v 15 w(INIT)f Fl(has)h(b)q(een)h(called)f(are)g(as)g
(follo)o(ws:)137 1192 y Fd(\017)21 b Fh(MPI)p 248 1192 V 15
w(COMM)p 351 1192 V 15 w(ALL)p Fl(,)40 b(SPMD-lik)o(e)13 b(siblings)g(of)g(a)
h(pro)q(cess.)137 1280 y Fd(\017)21 b Fh(MPI)p 248 1280 V 15
w(COMM)p 351 1280 V 15 w(HOST)p Fl(,)40 b(A)14 b(comm)o(unicator)d(for)j
(talking)e(to)i(one's)g(HOST.)137 1368 y Fd(\017)21 b Fh(MPI)p
248 1368 V 15 w(COMM)p 351 1368 V 15 w(PARENT)p Fl(,)40 b(A)13
b(comm)o(unicator)f(for)h(talking)g(to)g(one's)h(P)m(ARENT)g(\(spa)o(wner\).)
137 1456 y Fd(\017)21 b Fh(MPI)p 248 1456 V 15 w(COMM)p 351
1456 V 15 w(SELF)p Fl(,)30 b(A)11 b(comm)o(unicator)d(for)i(talking)g(to)g
(one's)h(self)g(\(useful)g(for)f(getting)g(con)o(texts)i(for)e(serv)o(er)179
1506 y(purp)q(oses,)15 b(etc.\).)158 1593 y(MPI)h(implem)o(en)o(tations)d
(are)i(required)h(to)g(pro)o(vide)f(at)g(least)g(some)g(of)f(these)j(comm)o
(unicators;)c(ho)o(w)o(ev)o(er,)75 1643 y(not)g(all)g(forms)f(of)h(comm)o
(unicatio)o(n)e(mak)o(e)h(sense)j(for)e(all)g(systems.)18 b(En)o(vironmen)o
(tal)11 b(inquiry)i(will)f(b)q(e)i(pro)o(vided)75 1692 y(to)g(determine)g
(whic)o(h)f(of)h(these)h(comm)o(unicators)c(are)k(usable)f(in)f(a)h(giv)o(en)
f(implemen)o(tation.)158 1826 y Fg(Discussion:)18 b Ff(En)o(vironmen)o(tal)e
(sub-committee)e(needs)g(to)f(pro)o(vide)h(suc)o(h)g(inquiry)h(functions)g
(for)e(us.)75 2053 y Fk(3.5)70 b(Group)24 b(Managemen)n(t)75
2146 y Fl(This)12 b(section)i(describ)q(es)g(the)f(manipulation)c(of)j
(groups)h(under)g(v)n(arious)f(subheadings:)18 b(general,)12
b(constructors,)75 2196 y(and)i(so)g(on.)75 2318 y Fe(3.5.1)55
b(Lo)r(cal)19 b(Op)r(erations)75 2397 y Fl(The)14 b(follo)o(wing)e(are)i(all)
f(lo)q(cal)g(\(non-comm)o(uni)o(cating\))e(op)q(erations.)89
2448 y Fi(MPI)p 188 2448 15 2 v 17 w(GR)o(OUP)p 384 2448 V
15 w(SIZE\(group,)k(size\))75 2616 y(IN)h(group)k Fl(handle)13
b(to)h(group)g(ob)r(ject.)75 2704 y Fi(OUT)i(size)k Fl(is)13
b(the)i(in)o(teger)f(n)o(um)o(b)q(er)f(of)h(pro)q(cesses)i(in)e(the)g(group.)
p eop
%%Page: 3 4
bop 75 -100 a Fm(3.5.)31 b(GR)o(OUP)13 b(MANA)o(GEMENT)1197
b Fl(3)89 45 y Fi(MPI)p 188 45 15 2 v 17 w(GR)o(OUP)p 384 45
V 15 w(RANK\(group,)15 b(rank\))75 208 y(IN)h(group)k Fl(handle)13
b(to)h(group)g(ob)r(ject.)75 291 y Fi(OUT)i(rank)k Fl(is)15
b(the)h(in)o(teger)g(rank)f(of)f(the)i(calling)e(pro)q(cess)j(in)e(group,)f
(or)i Fh(MPI)p 1366 291 14 2 v 15 w(UNDEFINED)d Fl(if)h(the)i(pro)q(cess)h
(is)179 341 y(not)d(a)f(mem)o(b)q(er.)89 433 y Fi(MPI)p 188
433 15 2 v 17 w(TRANSLA)l(TE)p 499 433 V 18 w(RANKS)j(\(group)p
847 433 V 15 w(a,)g(n,)g(ranks)p 1084 433 V 17 w(a,)g(group)p
1275 433 V 16 w(b,)f(ranks)p 1460 433 V 17 w(b\))75 596 y(IN)h(group)p
271 596 V 16 w(a)21 b Fl(handle)14 b(to)f(group)h(ob)r(ject)h(\\A")75
679 y Fi(IN)h(n)21 b Fl(n)o(um)o(b)q(er)13 b(of)g(ranks)h(in)g
Fh(ranks)p 666 679 14 2 v 14 w(a)g Fl(arra)o(y)75 763 y Fi(IN)i(ranks)p
263 763 15 2 v 17 w(a)21 b Fl(arra)o(y)14 b(of)f(zero)i(or)e(more)g(v)n(alid)
g(ranks)h(in)f(group)h(\\A")75 846 y Fi(IN)i(group)p 271 846
V 16 w(b)k Fl(handle)14 b(to)g(group)f(ob)r(ject)i(\\B")75
930 y Fi(OUT)h(ranks)p 314 930 V 16 w(b)21 b Fl(arra)o(y)10
b(of)g(corresp)q(onding)i(ranks)f(in)g(group)g(\\B,")f Fh(MPI)p
1220 930 14 2 v 15 w(UNDEFINED)f Fl(when)i(no)g(corresp)q(ondence)179
980 y(exists.)89 1071 y Fi(MPI)p 188 1071 15 2 v 17 w(GR)o(OUP)p
384 1071 V 15 w(FLA)l(TTEN\(group,)16 b(max)p 882 1071 V 17
w(length,)e(bu\013er,)g(actual)p 1337 1071 V 17 w(length\))75
1234 y(IN)i(group)k Fl(handle)13 b(to)h(ob)r(ject)75 1318 y
Fi(IN)i(max)p 237 1318 V 18 w(length)i Fl(maxim)n(um)10 b(length)k(of)f
(bu\013er)i(in)e(b)o(ytes)75 1401 y Fi(OUT)j(bu\013er)j Fl(b)o(yte-aligned)13
b(bu\013er)75 1485 y Fi(OUT)j(actual)p 327 1485 V 16 w(length)i
Fl(actual)c(b)o(yte)g(length)g(of)f(bu\013er)i(con)o(taining)e(\015attened)i
(group)e(information)75 1577 y(If)f(insu\016cien)o(t)h(space)g(is)g(a)o(v)n
(ailable)d(in)i Fh(buffer)f Fl(\(as)i(sp)q(eci\014ed)h(b)o(y)e
Fh(max)p 1189 1577 14 2 v 15 w(length)p Fl(\),)f(then)j(the)f(con)o(ten)o(ts)
g(of)f Fh(buffer)75 1626 y Fl(are)j(unde\014ned)g(at)g(exit.)k(The)c(quan)o
(tit)o(y)f Fh(actual)p 873 1626 V 14 w(length)f Fl(is)i(alw)o(a)o(ys)e(w)o
(ell-de\014ned)i(at)f(exit)g(as)h(the)g(n)o(um)o(b)q(er)f(of)75
1676 y(b)o(ytes)h(needed)g(to)f(store)h(the)f(\015attened)h(group.)158
1726 y(Though)g(implemen)o(tations)e(ma)o(y)h(v)n(ary)h(on)h(ho)o(w)f(they)i
(store)g(\015attened)g(groups,)f(the)g(information)d(m)o(ust)75
1776 y(b)q(e)h(su\016cien)o(t)f(to)h(reconstruct)h(the)f(group)f(using)g
Fh(MPI)p 936 1776 V 15 w(GROUP)p 1061 1776 V 15 w(UNFLATTEN)e
Fl(b)q(elo)o(w.)17 b(The)d(purp)q(ose)g(of)f(\015attening)75
1826 y(and)h(un\015attening)g(is)f(to)h(allo)o(w)e(in)o(terpro)q(cess)k
(transmission)d(of)g(group)h(ob)r(jects.)75 1943 y Fe(3.5.2)55
b(Lo)r(cal)19 b(Group)g(Constructors)75 2019 y Fl(The)14 b(execution)h(of)e
(the)i(follo)o(wing)c(op)q(erations)j(do)g(not)g(require)g(in)o(terpro)q
(cess)i(comm)o(unication.)89 2069 y Fi(MPI)p 188 2069 15 2
v 17 w(GR)o(OUP)p 384 2069 V 15 w(UNFLA)l(TTEN\(max)p 805 2069
V 19 w(length,)d(bu\013er,)i(group\))75 2232 y(IN)h(max)p 237
2232 V 18 w(length)i Fl(maxim)n(um)10 b(length)k(of)f(bu\013er)i(in)e(b)o
(ytes)75 2316 y Fi(IN)j(bu\013er)k Fl(b)o(yte-aligned)13 b(bu\013er)i(pro)q
(duced)g(b)o(y)e Fh(MPI)p 951 2316 14 2 v 16 w(GROUP)p 1077
2316 V 14 w(FLATTEN)75 2399 y Fi(OUT)j(group)j Fl(handle)14
b(to)f(ob)r(ject)75 2491 y(See)i(MPI)p 232 2491 13 2 v 15 w(GR)o(OUP)p
401 2491 V 15 w(FLA)m(TTEN)f(ab)q(o)o(v)o(e.)89 2541 y Fi(MPI)p
188 2541 15 2 v 17 w(LOCAL)p 369 2541 V 17 w(SUBGR)o(OUP\(grou)o(p,)f(n,)i
(ranks,)h(new)p 1110 2541 V 17 w(group\))75 2704 y(IN)g(group)k
Fl(handle)13 b(to)h(group)g(ob)r(ject)p eop
%%Page: 4 5
bop 75 -100 a Fl(4)75 45 y Fi(IN)16 b(n)21 b Fl(n)o(um)o(b)q(er)13
b(of)g(elemen)o(ts)h(in)f(arra)o(y)h(ranks)g(\(and)g(size)h(of)e
Fh(new)p 1123 45 14 2 v 15 w(group)p Fl(\))75 132 y Fi(IN)j(ranks)21
b Fl(arra)o(y)13 b(of)g(in)o(teger)i(ranks)f(in)f(group)75
220 y Fi(OUT)j(new)p 283 220 15 2 v 17 w(group)j Fl(new)14
b(group)g(deriv)o(ed)g(from)f(ab)q(o)o(v)o(e,)g(preserving)i(the)f(order)h
(de\014ned)g(b)o(y)e Fh(ranks)p Fl(.)89 315 y Fi(MPI)p 188
315 V 17 w(LOCAL)p 369 315 V 17 w(SUBGR)o(OUP)p 663 315 V 15
w(RANGES\(group,)h(n,)h(ranges,)g(new)p 1352 315 V 17 w(group\))75
482 y(IN)h(group)k Fl(handle)13 b(to)h(group)g(ob)r(ject)75
569 y Fi(IN)i(n)21 b Fl(n)o(um)o(b)q(er)13 b(of)g(elemen)o(ts)h(in)f(arra)o
(y)h(ranks)g(\(and)g(size)h(of)e Fh(new)p 1123 569 14 2 v 15
w(group)p Fl(\))75 657 y Fi(IN)j(ranges)k Fl(a)14 b(one-dimensional)d(arra)o
(y)j(of)f(pairs)h(of)f(ranks)i(\(form:)h(b)q(egin)e(through)g(end\))75
744 y Fi(OUT)i(new)p 283 744 15 2 v 17 w(group)j Fl(new)14
b(group)g(deriv)o(ed)g(from)f(ab)q(o)o(v)o(e,)g(preserving)i(the)f(order)h
(de\014ned)g(b)o(y)e Fh(ranges)p Fl(.)158 922 y Fg(Discussion:)k
Ff(Please)12 b(prop)q(ose)g(additional)i(subgroup)e(functions,)g(b)q(efore)f
(the)g(second)h(reading...Virtual)h(T)m(op)q(olo-)75 972 y(gies)h(supp)q
(ort?)89 1106 y Fi(MPI)p 188 1106 V 17 w(LOCAL)p 369 1106 V
17 w(GR)o(OUP)p 565 1106 V 16 w(UNION\(group1,)g(group2,)g(group)p
1233 1106 V 16 w(out\))89 1226 y(MPI)p 188 1226 V 17 w(LOCAL)p
369 1226 V 17 w(GR)o(OUP)p 565 1226 V 16 w(INTERSECT\(group1,)h(group2,)f
(group)p 1349 1226 V 16 w(out\))89 1347 y(MPI)p 188 1347 V
17 w(LOCAL)p 369 1347 V 17 w(GR)o(OUP)p 565 1347 V 16 w(DIFFERENCE\(group1,)h
(group2,)g(group)p 1385 1347 V 15 w(out\))75 1513 y(IN)h(group1)j
Fl(\014rst)c(group)f(ob)r(ject)h(handle)75 1601 y Fi(IN)h(group2)j
Fl(second)c(group)f(ob)r(ject)h(handle)75 1688 y Fi(OUT)h(group)p
322 1688 V 15 w(out)k Fl(group)14 b(ob)r(ject)g(handle)75 1784
y(The)g(set-lik)o(e)g(op)q(erations)g(are)h(de\014ned)g(as)f(follo)o(ws:)75
1870 y Fi(union)k Fl(All)d(elemen)o(ts)g(of)g(the)g(\014rst)h(group)f
(\(group1\),)g(follo)o(w)o(ed)f(b)o(y)h(all)f(elemen)o(ts)h(of)g(second)h
(group)f(\(group2\))179 1920 y(not)f(in)f(\014rst)75 2007 y
Fi(in)o(tersect)18 b Fl(all)12 b(elemen)o(ts)i(of)f(the)i(\014rst)g(group)e
(whic)o(h)h(are)g(also)g(in)f(the)i(second)g(group)75 2095
y Fi(di\013erence)j Fl(all)13 b(elemen)o(ts)h(of)f(the)i(\014rst)f(group)g
(whic)o(h)g(are)g(not)g(in)f(the)i(second)g(group)75 2181 y(Note)e(the)g(for)
g(these)h(op)q(erations)f(the)g(order)g(of)f(pro)q(cesses)k(in)c(the)h
(output)g(group)f(is)h(determined)f(\014rst)i(b)o(y)e(order)75
2231 y(in)k(the)i(\014rst)f(group)g(\(if)f(p)q(ossible\))h(and)g(then)g(b)o
(y)g(order)h(in)e(the)h(second)h(group)f(\(if)f(necessary\).)29
b Fg(Discussion:)75 2363 y Ff(What)14 b(do)g(p)q(eople)h(think)g(ab)q(out)g
(these)f(lo)q(cal)h(op)q(erations?)21 b(More?)e(Less?)g(Note:)f(these)c(op)q
(erations)i(do)e(not)f(explicitl)q(y)75 2413 y(en)o(umerate)h(ranks,)f(and)h
(therefore)f(are)g(more)g(scalable)i(if)f(implemen)o(ted)h(e\016cien)o(tly)p
Fc(:)8 b(:)e(:)89 2546 y Fi(MPI)p 188 2546 V 17 w(GR)o(OUP)p
384 2546 V 15 w(FREE\(group\))75 2704 y(IN)16 b(group)k Fl(frees)15
b Fh(group)d Fl(previously)i(de\014ned.)p eop
%%Page: 5 6
bop 75 -100 a Fm(3.5.)31 b(GR)o(OUP)13 b(MANA)o(GEMENT)1197
b Fl(5)75 45 y(This)11 b(op)q(eration)g(frees)i(a)e(handle)g
Fh(group)f Fl(whic)o(h)h(is)g(not)g(curren)o(tly)h(b)q(ound)g(to)f(a)g(comm)o
(unicator.)j(It)d(is)h(erroneous)75 95 y(to)i(attempt)f(to)h(free)g(a)g
(group)g(curren)o(tly)g(b)q(ound)g(to)g(a)g(comm)o(unicator.)158
227 y Fg(Discussion:)19 b Ff(The)14 b(p)q(oin)o(t-to-p)q(oin)o(t)i(c)o
(hapter)f(suggests)f(that)g(there)g(is)h(a)e(single)j(destructor)e(for)g(all)
h(MPI)f(opaque)75 277 y(ob)r(jects;)f(ho)o(w)o(ev)o(er,)g(it)g(is)h(arguable)
h(that)e(this)h(sp)q(eci\014es)h(the)e(implemen)o(tation)j(of)d(MPI)g(v)o
(ery)g(strongly)m(.)89 410 y Fi(MPI)p 188 410 15 2 v 17 w(GR)o(OUP)p
384 410 V 15 w(DUP\(group,)h(new)p 757 410 V 17 w(group\))75
556 y(IN)i(group)k Fl(extan)o(t)14 b(group)f(ob)r(ject)i(handle)75
636 y Fi(OUT)h(new)p 283 636 V 17 w(group)j Fl(new)14 b(group)g(ob)r(ject)h
(handle)75 712 y Fh(MPI)p 144 712 14 2 v 15 w(GROUP)p 269 712
V 15 w(DUP)e Fl(duplicates)g(a)h(group)f(with)g(all)f(its)i(cac)o(hed)g
(information,)c(replacing)k(nothing.)j(This)c(function)75 761
y(is)h(essen)o(tial)g(to)g(the)g(supp)q(ort)h(of)e(virtual)g(top)q(ologies.)
75 876 y Fe(3.5.3)55 b(Collectiv)n(e)20 b(Group)f(Constructors)75
953 y Fl(The)14 b(execution)h(of)e(the)i(follo)o(wing)c(op)q(erations)j
(require)h(collectiv)o(e)f(comm)o(unicatio)o(n)d(within)i(a)h(group.)89
1002 y Fi(MPI)p 188 1002 15 2 v 17 w(COLL)p 333 1002 V 17 w(SUBGR)o
(OUP\(comm,)f(mem)o(b)q(ership)p 1054 1002 V 14 w(k)o(ey)l(,)j(new)p
1248 1002 V 17 w(group\))75 1149 y(IN)g(comm)21 b Fl(comm)o(unicator)11
b(ob)r(ject)k(handle)75 1229 y Fi(IN)h(mem)o(b)q(ership)p 407
1229 V 14 w(k)o(ey)21 b Fl(\(in)o(teger\))75 1308 y Fi(OUT)16
b(new)p 283 1308 V 17 w(group)j Fl(new)14 b(group)g(ob)r(ject)h(handle)75
1384 y(This)c(collectiv)o(e)g(function)g(is)g(called)g(b)o(y)h(all)e(pro)q
(cesses)j(in)e(the)h(group)f(asso)q(ciated)h(with)f Fh(comm)p
Fl(.)16 b(A)c(separate,)g(non-)75 1434 y(o)o(v)o(erlapping)g(group)h(of)g
(pro)q(cesses)j(is)d(formed)f(for)h(eac)o(h)h(distinct)g(v)n(alue)e(of)h
Fh(key)p Fl(,)g(with)g(the)g(pro)q(cesses)j(retaining)75 1483
y(their)e(relativ)o(e)g(order)h(compared)e(to)h(the)g(group)g(of)f
Fh(comm)p Fl(.)89 1533 y Fi(MPI)p 188 1533 V 17 w(COLL)p 333
1533 V 17 w(GR)o(OUP)p 529 1533 V 15 w(PERMUTE\(comm,)j(new)p
1046 1533 V 17 w(rank,)g(new)p 1270 1533 V 17 w(group\))75
1680 y(IN)g(comm)21 b Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75
1759 y Fi(IN)h(new)p 232 1759 V 17 w(rank)21 b Fl(\(in)o(teger\))75
1839 y Fi(OUT)16 b(new)p 283 1839 V 17 w(group)j Fl(new)14
b(group)g(ob)r(ject)h(handle)75 1915 y(This)c(collectiv)o(e)g(function)g(op)q
(erates)i(o)o(v)o(er)e(all)f(elemen)o(ts)h(of)g(the)h(group)f(of)g(comm.)j(A)
d(correct)i(program)d(sp)q(eci\014es)75 1964 y(a)k(distinct)g
Fh(new)p 329 1964 14 2 v 15 w(rank)f Fl(in)g(eac)o(h)i(pro)q(cess,)g(whic)o
(h)f(de\014nes)h(a)f(p)q(erm)o(utation)e(of)h(the)i(original)d(ordering.)158
2093 y Fg(Discussion:)k Ff(Before,)10 b(w)o(e)e(had)i(one)g(function)g(that)f
(implemen)o(ted)j(collectiv)o(e)f(subsetting,)h(as)d(w)o(ell)h(as)f(p)q(erm)o
(utation)75 2138 y(of)18 b(ranks.)33 b(W)m(e)18 b(con)o(vinced)i(ourselv)o
(es)g(that)e(it)g(is)h(b)q(etter)f(to)g(ha)o(v)o(e)h(the)f(ab)q(o)o(v)o(e)h
(t)o(w)o(o)f(functions,)i(eac)o(h)f(of)e(whic)o(h)i(has)75
2184 y(clear)g(usage)f(and)h(implemen)o(tation.)34 b(W)m(e)18
b(do)g(not)g(b)q(eliev)o(e)i(that)e(the)g(p)q(erformance)g(of)g(the)g(t)o(w)o
(o-function)h(sequence)75 2230 y(needed)12 b(to)g(subset)g(and)g(p)q(erm)o
(ute)g(will)h(signi\014can)o(tl)q(y)h(di\013er)f(from)e(the)h
(all-encompassing)j(function)e(previously)h(de\014ned.)75 2275
y(Commen)o(ts?)158 2321 y(F)m(or)g(instance,)g(to)g(pro)o(vide)h(the)f
(sorting)h(function)g(capabilit)o(y)i(originally)g(an)o(ticipated)f(b)o(y)e
(Marc)g(Snir,)g(one)g(could)75 2367 y(use)c(MPI)p 215 2367
12 2 v 14 w(COLL)p 335 2367 V 13 w(SUBGR)o(OUP)g(preceeded)g(b)o(y)g(a)f
(stable)h(sort.)16 b(W)m(e)10 b(therefore)f(see)h(the)f(giv)o(en)i
(functionalit)o(y)h(as)e(su\016cien)o(t)75 2412 y(and)k(clearly)g(explicabl)q
(e.)158 2462 y(By)d(the)f(w)o(a)o(y)m(,)g(w)o(e)g(ha)o(v)o(e)h(in)o(ten)o
(tionall)q(y)i(a)o(v)o(oided)f(making)g(con)o(v)o(enience)g(functions)g(that)
f(do)f(analogous)j(p)q(erm)o(utation)75 2512 y(or)j(subsetting,)j(while)f
(creating)g(new)e(comm)o(unicators,)j(b)q(ecause)f(the)e(user)h(can)g(easily)
h(do)f(this)g(without)g(additional)75 2562 y(sync)o(hronization)q(s)g(b)q(ey)
o(ond)e(getting)h(additional)h(needed)e(con)o(texts.)21 b(Are)14
b(these)h(so)f(con)o(v)o(enien)o(t)i(that)e(w)o(e)g(w)o(an)o(t)g(to)g(add)75
2612 y(them)f(\()p Fb(e.g.)p Ff(,)e Fa(MPI)p 332 2612 V 13
w(COLL)p 425 2612 V 13 w(COMM)p 518 2612 V 12 w(PERMUTE)p Ff(\).)p
eop
%%Page: 6 7
bop 75 -100 a Fl(6)75 45 y Fk(3.6)70 b(Op)r(erations)22 b(on)h(Con)n(texts)75
144 y Fe(3.6.1)55 b(Lo)r(cal)19 b(Op)r(erations)89 221 y Fi(MPI)p
188 221 15 2 v 17 w(CONTEXTS)p 472 221 V 18 w(RESER)-5 b(VE\(n,)16
b(con)o(texts\))75 381 y(IN)g(n)21 b Fl(n)o(um)o(b)q(er)13
b(of)g(con)o(texts)i(to)f(reserv)o(e)i(\(resp,)e(unreserv)o(e\))75
464 y Fi(IN)i(con)o(texts)j Fl(in)o(teger)c(arra)o(y)e(of)h(con)o(texts)75
553 y(Reserv)o(es)k(zero)g(or)f(more)e(con)o(texts.)28 b(A)16
b(reserv)o(ed)j(con)o(text)f(will)d(not)h(b)q(e)i(allo)q(cated)e(b)o(y)g(a)h
(subsequen)o(t)h(call)e(to)75 603 y Fh(MPI)p 144 603 14 2 v
15 w(CONTEXTS)p 335 603 V 14 w(ALLOC)g Fl(in)h(the)h(same)f(pro)q(cess)i
(\(see)g(b)q(elo)o(w\).)28 b(If)18 b(one)f(or)h(more)e(con)o(texts)i(had)g
(already)f(b)q(een)75 653 y(allo)q(cated)12 b(b)o(y)g Fh(MPI)p
375 653 V 15 w(CONTEXTS)p 566 653 V 14 w(ALLOC)f Fl(or)i(reserv)o(ed)h(b)o(y)
e Fh(MPI)p 1033 653 V 15 w(CONTEXTS)p 1224 653 V 14 w(RESERVE)p
Fl(,)f(then)i(this)f(function)g(returns)75 703 y(an)i(error,)g(and)g(no)f(c)o
(hange)i(of)e(con)o(text)h(reserv)n(ation)h(state)g(shall)e(ha)o(v)o(e)g(o)q
(ccured.)89 752 y Fi(MPI)p 188 752 15 2 v 17 w(CONTEXTS)p 472
752 V 18 w(FREE\(n,)j(con)o(texts\))75 905 y(IN)g(n)21 b Fl(n)o(um)o(b)q(er)
13 b(of)g(con)o(texts)i(to)f(free)75 987 y Fi(IN)i(con)o(texts)j
Fl(in)o(teger)c(arra)o(y)e(of)h(con)o(texts)75 1069 y(Lo)q(cal)19
b(deallo)q(cation)g(of)h(con)o(text)g(allo)q(cated)g(b)o(y)f
Fh(MPI)p 953 1069 14 2 v 15 w(CONTEXTS)p 1144 1069 V 14 w(RESERVE)g
Fl(or)h Fh(MPI)p 1454 1069 V 15 w(CONTEXTS)p 1645 1069 V 14
w(ALLOC)p Fl(.)e(It)i(is)75 1119 y(erroneous)13 b(to)f(free)g(a)f(con)o(text)
i(that)f(is)f(b)q(ound)h(to)f(an)o(y)h(comm)o(unicator)d(\(either)j(lo)q
(cally)e(or)i(in)f(another)h(pro)q(cess\).)75 1235 y Fe(3.6.2)55
b(Collectiv)n(e)20 b(Op)r(erations)89 1311 y Fi(MPI)p 188 1311
15 2 v 17 w(CONTEXTS)p 472 1311 V 18 w(ALLOC\(comm,)c(n,)f(con)o(texts\))75
1472 y(IN)h(comm)21 b Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75
1554 y Fi(IN)h(n)21 b Fl(n)o(um)o(b)q(er)13 b(of)g(con)o(texts)i(to)f(allo)q
(cate)75 1636 y Fi(OUT)i(con)o(texts)j Fl(in)o(teger)14 b(arra)o(y)g(of)f
(con)o(texts)158 1726 y(Allo)q(cates)18 b(an)g(arra)o(y)g(of)g(con)o(texts.)
32 b(This)18 b(collectiv)o(e)g(op)q(eration)g(is)g(executed)i(b)o(y)e(all)f
(pro)q(cesses)k(in)c(the)75 1776 y(group)d(de\014ned)i(b)o(y)e
Fh(comm)p Fl(.)19 b(The)c(con)o(texts)g(that)g(are)g(allo)q(cated)f(b)o(y)g
Fh(MPI)p 1229 1776 14 2 v 15 w(ALLOC)p 1354 1776 V 15 w(CONTEXTS)e
Fl(are)j(unique)g(within)75 1825 y(the)f(group)f(asso)q(ciated)h(with)f
Fh(comm)p Fl(.)k(The)c(arra)o(y)g(is)g(the)h(same)e(on)h(all)f(pro)q(cesses)k
(that)e(call)e(the)i(function)f(\(same)75 1875 y(order,)h(same)f(n)o(um)o(b)q
(er)g(of)h(elemen)o(ts\).)87 1925 y Fi(MPI)p 186 1925 15 2
v 18 w(CONTEXTS)p 471 1925 V 18 w(JOIN\(lo)q(cal)p 721 1925
V 16 w(comm,)g(remote)p 1036 1925 V 16 w(comm)p 1177 1925 V
17 w(send,)g(remote)p 1463 1925 V 15 w(comm)p 1603 1925 V 17
w(recv,)h(n,)f(con-)75 2010 y(texts\))75 2135 y(IN)i(lo)q(cal)p
246 2135 V 17 w(comm)k Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75
2218 y Fi(IN)h(remote)p 296 2218 V 16 w(comm)p 437 2218 V 17
w(send)k Fl(comm)o(uni)o(cator)12 b(ob)r(ject)i(handle)75 2300
y Fi(IN)i(remote)p 296 2300 V 16 w(comm)p 437 2300 V 17 w(recv)21
b Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75 2382 y Fi(IN)h(n)21
b Fl(n)o(um)o(b)q(er)13 b(of)g(con)o(texts)i(to)f(allo)q(cate)75
2465 y Fi(OUT)i(con)o(texts)j Fl(in)o(teger)14 b(arra)o(y)g(of)f(con)o(texts)
75 2554 y(This)f(is)f(an)h(adv)n(anced)g(function)f(needed)i(to)f(supp)q(ort)
g(\\safe")g(in)o(tergroup)g(comm)o(uni)o(cation.)i(The)f(function)e(cre-)75
2604 y(ates)j Fh(n)e Fl(con)o(texts)i(unique)f(on)g(the)g(union)f(of)h(the)g
(underlying)g(groups)g(of)f Fh(local)p 1347 2604 14 2 v 15
w(comm)g Fl(and)h Fh(remote)p 1674 2604 V 14 w(comm)p 1776
2604 V 15 w(send)75 2654 y Fl(\(whic)o(h)k(is)f(the)h(same)f(as)g
Fh(remote)p 626 2654 V 15 w(comm)p 729 2654 V 15 w(recv)p Fl('s)f(group\).)26
b Fh(remote)p 1165 2654 V 15 w(comm)p 1268 2654 V 15 w(send)15
b Fl(and)i Fh(remote)p 1602 2654 V 14 w(comm)p 1704 2654 V
15 w(recv)f Fl(are)75 2704 y(created)f(b)o(y)f Fh(MPI)p 347
2704 V 15 w(COMM)p 450 2704 V 15 w(MERGE)f Fl(\(b)q(elo)o(w\).)p
eop
%%Page: 7 8
bop 75 -100 a Fm(3.7.)31 b(OPERA)m(TIONS)14 b(ON)g(COMMUNICA)m(TORS)924
b Fl(7)75 45 y Fk(3.7)70 b(Op)r(erations)22 b(on)h(Comm)n(unicators)75
144 y Fe(3.7.1)55 b(Lo)r(cal)19 b(Comm)n(unicator)h(Op)r(erations)75
221 y Fl(The)14 b(follo)o(wing)e(are)i(all)f(lo)q(cal)g(\(non-comm)o(uni)o
(cating\))e(op)q(erations.)89 271 y Fi(MPI)p 188 271 15 2 v
17 w(COMM)p 365 271 V 18 w(SIZE\(comm,)16 b(size\))75 432 y(IN)g(comm)21
b Fl(handle)14 b(to)f(comm)o(unicator)e(ob)r(ject.)75 515 y
Fi(OUT)16 b(size)k Fl(is)13 b(the)i(in)o(teger)f(n)o(um)o(b)q(er)f(of)h(pro)q
(cesses)i(in)e(the)g(group)g(of)f Fh(comm)p Fl(.)89 606 y Fi(MPI)p
188 606 V 17 w(COMM)p 365 606 V 18 w(RANK\(comm,)j(rank\))75
767 y(IN)g(comm)21 b Fl(handle)14 b(to)f(comm)o(unicator)e(ob)r(ject.)75
850 y Fi(OUT)16 b(rank)k Fl(is)e(the)g(in)o(teger)g(rank)g(of)f(the)h
(calling)e(pro)q(cess)k(in)d(group)h(of)f Fh(comm)p Fl(,)g(or)h
Fh(MPI)p 1550 850 14 2 v 15 w(UNDEFINED)d Fl(if)i(the)179 900
y(pro)q(cess)e(is)f(not)g(a)g(mem)o(b)q(er.)89 991 y Fi(MPI)p
188 991 15 2 v 17 w(COMM)p 365 991 V 18 w(FLA)l(TTEN\(comm,)j(max)p
870 991 V 17 w(length,)d(bu\013er,)g(actual)p 1325 991 V 17
w(length\))75 1152 y(IN)i(comm)21 b Fl(handle)14 b(to)f(comm)o(unicator)e(ob)
r(ject.)75 1235 y Fi(IN)16 b(max)p 237 1235 V 18 w(length)i
Fl(maxim)n(um)10 b(length)k(of)f(bu\013er)i(in)e(b)o(ytes)75
1318 y Fi(OUT)j(bu\013er)j Fl(b)o(yte-aligned)13 b(bu\013er)75
1401 y Fi(OUT)j(actual)p 327 1401 V 16 w(length)i Fl(actual)c(b)o(yte)g
(length)g(of)f(bu\013er)i(con)o(taining)e(\015attened)i(comm)o(unicator)c
(information)75 1491 y(If)h(insu\016cien)o(t)h(space)g(is)g(a)o(v)n(ailable)d
(in)i Fh(buffer)f Fl(\(as)i(sp)q(eci\014ed)h(b)o(y)e Fh(max)p
1189 1491 14 2 v 15 w(length)p Fl(\),)f(then)j(the)f(con)o(ten)o(ts)g(of)f
Fh(buffer)75 1541 y Fl(are)j(unde\014ned)g(at)g(exit.)k(The)c(quan)o(tit)o(y)
f Fh(actual)p 873 1541 V 14 w(length)f Fl(is)i(alw)o(a)o(ys)e(w)o
(ell-de\014ned)i(at)f(exit)g(as)h(the)g(n)o(um)o(b)q(er)f(of)75
1591 y(b)o(ytes)h(needed)g(to)f(store)h(the)f(\015attened)h(comm)o(unicator.)
158 1641 y(Though)c(implemen)o(tations)d(ma)o(y)i(v)n(ary)h(on)g(ho)o(w)g
(they)h(store)g(\015attened)h(comm)o(unicators,)c(the)j(information)75
1691 y(m)o(ust)g(b)q(e)i(su\016cien)o(t)f(to)g(reconstruct)j(the)d(comm)o
(unicator)e(using)i Fh(MPI)p 1191 1691 V 15 w(COMM)p 1294 1691
V 15 w(UNFLATTEN)e Fl(b)q(elo)o(w.)17 b(The)d(purp)q(ose)75
1741 y(of)f(\015attening)h(and)g(un\015attening)g(is)f(to)h(allo)o(w)e(in)o
(terpro)q(cess)k(transmission)d(of)g(comm)o(unicator)e(ob)r(jects.)75
1857 y Fe(3.7.2)55 b(Lo)r(cal)19 b(Constructors)89 1933 y Fi(MPI)p
188 1933 15 2 v 17 w(COMM)p 365 1933 V 18 w(UNFLA)l(TTEN\(max)p
789 1933 V 18 w(length,)14 b(bu\013er,)h(comm\))75 2087 y(IN)h(max)p
237 2087 V 18 w(length)i Fl(maxim)n(um)10 b(length)k(of)f(bu\013er)i(in)e(b)o
(ytes)75 2169 y Fi(IN)j(bu\013er)k Fl(b)o(yte-aligned)13 b(bu\013er)i(pro)q
(duced)g(b)o(y)e Fh(MPI)p 951 2169 14 2 v 16 w(COMM)p 1055
2169 V 14 w(FLATTEN)75 2252 y Fi(OUT)j(comm)k Fl(handle)14
b(to)g(ob)r(ject)75 2335 y(See)h Fh(MPI)p 218 2335 V 15 w(COMM)p
321 2335 V 15 w(FLATTEN)d Fl(ab)q(o)o(v)o(e.)89 2385 y Fi(MPI)p
188 2385 15 2 v 17 w(COMM)p 365 2385 V 18 w(BIND\(group,)i(con)o(text,)h
(comm)p 986 2385 V 17 w(new\))75 2538 y(IN)h(group)k Fl(ob)r(ject)14
b(handle)g(to)g(b)q(e)g(b)q(ound)g(to)g(new)g(comm)o(unicator)75
2621 y Fi(IN)i(con)o(text)k Fl(con)o(text)14 b(to)g(b)q(e)g(b)q(ound)g(to)g
(new)h(comm)o(uni)o(cator)75 2704 y Fi(OUT)h(comm)p 325 2704
V 17 w(new)k Fl(the)15 b(new)f(comm)o(unicator.)p eop
%%Page: 8 9
bop 75 -100 a Fl(8)158 45 y(The)19 b(ab)q(o)o(v)o(e)e(function)h(creates)i(a)
e(new)h(comm)o(unicator)c(ob)r(ject,)20 b(whic)o(h)e(is)g(asso)q(ciated)h
(with)e(the)i(group)75 95 y(de\014ned)e(b)o(y)e(group,)g(and)h(the)g(sp)q
(eci\014ed)h(con)o(text.)23 b(The)16 b(op)q(eration)g(do)q(es)g(not)g
(require)g(comm)o(unication.)j(It)d(is)75 145 y(correct)i(to)e(b)q(egin)h
(using)f(a)g(comm)o(unicator)e(as)i(so)q(on)h(as)f(it)g(is)g(de\014ned.)27
b(It)17 b(is)f(not)g(erroneous)i(to)e(in)o(v)o(ok)o(e)g(this)75
195 y(function)10 b(t)o(wice)g(in)f(the)h(same)f(pro)q(cess)j(with)d(the)i
(same)e(con)o(text.)17 b(Finally)m(,)8 b(there)j(is)f(no)g(explicit)f(sync)o
(hronization)75 244 y(o)o(v)o(er)14 b(the)g(group.)89 297 y
Fi(MPI)p 188 297 15 2 v 17 w(COMM)p 365 297 V 18 w(UNBIND\(comm\))75
460 y(IN)i(comm)21 b Fl(the)14 b(comm)o(unicator)d(to)j(b)q(e)h(deallo)q
(cated.)75 553 y(This)f(routine)h(disasso)q(ciates)h(the)f(group)f(asso)q
(ciated)i(with)e(comm)e(from)g(the)k(con)o(text)f(asso)q(ciated)g(with)f
Fh(comm)p Fl(.)75 603 y(The)e(opaque)g(ob)r(ject)h Fh(comm)e
Fl(is)h(deallo)q(cated.)17 b(Both)12 b(the)h(group)f(and)f(con)o(text,)i(pro)
o(vided)f(at)f(the)i Fh(MPI)p 1673 603 14 2 v 15 w(COMM)p 1776
603 V 15 w(BIND)75 652 y Fl(call,)c(remain)f(a)o(v)n(ailable)f(for)i(further)
h(use.)17 b(If)9 b Fh(MPI)p 845 652 V 15 w(COMM)p 948 652 V
15 w(MAKE)f Fl(\(see)j(b)q(elo)o(w\))e(w)o(as)g(called)g(in)g(lieu)g(of)g
Fh(MPI)p 1682 652 V 15 w(COMM)p 1785 652 V 15 w(BIND)p Fl(,)75
702 y(then)14 b(there)g(is)f(no)g(exp)q(osed)h(con)o(text)f(kno)o(wn)g(to)g
(the)g(user,)h(and)f(this)g(quan)o(tit)o(y)f(is)h(freed)h(b)o(y)f
Fh(MPI)p 1618 702 V 15 w(COMM)p 1721 702 V 15 w(UNBIND)p Fl(.)89
755 y Fi(MPI)p 188 755 15 2 v 17 w(COMM)p 365 755 V 18 w(GR)o(OUP\(comm,)h
(group\))75 918 y(IN)i(comm)21 b Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)
75 1014 y Fi(OUT)h(group)j Fl(group)14 b(ob)r(ject)g(handle)75
1106 y(Accessor)i(that)e(returns)h(the)g(group)f(corresp)q(onding)h(to)e(the)
i(comm)o(unicator)c Fh(comm)p Fl(.)89 1159 y Fi(MPI)p 188 1159
V 17 w(COMM)p 365 1159 V 18 w(CONTEXT\(comm,)17 b(con)o(text\))75
1322 y(IN)f(comm)21 b Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75
1418 y Fi(OUT)h(con)o(text)j Fl(con)o(text)75 1510 y(Returns)c(the)f(con)o
(text)h(asso)q(ciated)f(with)g(the)h(comm)o(uni)o(cator)d Fh(comm)p
Fl(.)89 1563 y Fi(MPI)p 188 1563 V 17 w(COMM)p 365 1563 V 18
w(DUP\(comm,)j(new)p 745 1563 V 17 w(con)o(text,)f(new)p 1028
1563 V 17 w(comm\))75 1726 y(IN)i(comm)21 b Fl(comm)o(unicator)11
b(ob)r(ject)k(handle)75 1821 y Fi(IN)h(new)p 232 1821 V 17
w(con)o(text)k Fl(new)14 b(con)o(text)h(to)e(use)i(with)f(new)p
945 1821 13 2 v 15 w(comm)75 1917 y Fi(OUT)i(new)p 283 1917
15 2 v 17 w(comm)k Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75
2009 y Fh(MPI)p 144 2009 14 2 v 15 w(COMM)p 247 2009 V 15 w(DUP)c
Fl(duplicates)h(a)g(comm)o(unicator)d(with)j(all)f(its)g(cac)o(hed)i
(information,)c(replacing)j(just)g(the)h(con)o(text.)89 2062
y Fi(MPI)p 188 2062 15 2 v 17 w(COMM)p 365 2062 V 18 w(MER)o(GE\(comm,)j
(comm)p 861 2062 V 16 w(remote,)f(comm)p 1177 2062 V 17 w(send,)g(comm)p
1442 2062 V 17 w(recv\))75 2225 y(IN)h(comm)21 b Fl(comm)o(unicator)11
b(ob)r(ject)k(handle)75 2321 y Fi(IN)h(comm)p 274 2321 V 17
w(remote)k Fl(comm)o(uni)o(cator)12 b(ob)r(ject)i(handle)75
2416 y Fi(OUT)i(comm)p 325 2416 V 17 w(send)j Fl(comm)o(unicator)11
b(ob)r(ject)k(handle)75 2512 y Fi(OUT)h(comm)p 325 2512 V 17
w(recv)k Fl(comm)o(unicator)11 b(ob)r(ject)k(handle)75 2604
y Fh(MPI)p 144 2604 14 2 v 15 w(COMM)p 247 2604 V 15 w(MERGE)i
Fl(is)i(a)f(call)f(used)j(after)f(a)f(publish)g(&)h(subscrib)q(e)h(\(equiv)n
(alen)o(tly)m(,)d(\015atten)i(&)g(un\015atten\))g(se-)75 2654
y(quence)g(to)f(pro)o(vide)g(comm)o(unicators)e(that)i(can)g(b)q(e)h(used)g
(to)f(transmit)f(to)g(remote)h(group)g(using)g(\\correct")75
2704 y(rank)c(notation.)j(It)d(is)g(motiv)n(ated)e(further)i(b)q(elo)o(w.)p
eop
%%Page: 9 10
bop 75 -100 a Fm(3.8.)31 b(INTER-COMMUNICA)m(TION)14 b(INITIALIZA)m(TION)h(&)
f(RENDEZV)o(OUS)447 b Fl(9)75 45 y Fe(3.7.3)55 b(Collectiv)n(e)20
b(Comm)n(unicator)g(Constructors)89 122 y Fi(MPI)p 188 122
15 2 v 17 w(COMM)p 365 122 V 18 w(MAKE\(comm,)d(group,)d(comm)p
980 122 V 17 w(new\))75 273 y(IN)i(comm)21 b Fl(Comm)o(uni)o(cator-scop)q(e)
12 b(in)i(whic)o(h)g(the)g(new)g(comm)o(unicator's)d(con)o(text)k(will)d(b)q
(e)j(allo)q(cated.)75 354 y Fi(IN)h(group)k Fl(group)13 b(ob)r(ject)i(handle)
f(to)f(b)q(e)i(b)q(ound)f(to)g(new)g(comm)o(unicator)75 435
y Fi(OUT)i(comm)p 325 435 V 17 w(new)k Fl(the)15 b(new)f(comm)o(unicator.)75
515 y Fh(MPI)p 144 515 14 2 v 15 w(COMM)p 247 515 V 15 w(MAKE)f
Fl(is)h(equiv)n(alen)o(t)f(to:)140 595 y Fh(MPI_CONTEXTS_ALLOC\()o(comm,)18
b(context,)i(1\))140 645 y(MPI_COMM_BIND\(comm,)e(group,)j(context,)f
(comm_new\))75 725 y Fl(plus,)d(notionally)m(,)d(in)o(ternal)j(\015ags)f(are)
i(set)f(in)g(the)g(comm)o(unicator,)d(denoting)j(that)f(con)o(text)i(w)o(as)f
(created)h(as)75 775 y(part)d(of)g(the)g(opaque)g(pro)q(cess)i(that)e(made)f
(the)i(comm)o(unicator)c(\(so)j(it)g(can)g(b)q(e)h(freed)g(b)o(y)f
Fh(MPI)p 1602 775 V 15 w(COMM)p 1705 775 V 15 w(UNBIND)p Fl(\).)75
825 y(It)f(is)g(not)g(erroneous)h(if)e(the)h Fh(group)f Fl(is)h(not)g(a)f
(subset)j(of)d(the)h(underlying)g(group)g(of)f Fh(comm)p Fl(.)75
961 y Fk(3.8)70 b(In)n(ter-comm)n(unicati)o(on)21 b(Initializ)o(ati)o(on)g(&)
i(Rendezv)n(ous)89 1052 y Fi(MPI)p 188 1052 15 2 v 17 w(COMM)p
365 1052 V 18 w(PUBLISH\(comm,)15 b(lab)q(el,)f(p)q(ersistence)p
1131 1052 V 15 w(\015ag\))75 1203 y(IN)i(comm)21 b Fl(Comm)o(uni)o(cator)11
b(to)j(b)q(e)h(published)f(under)g(the)h(name)e Fh(label)p
Fl(.)75 1284 y Fi(IN)j(lab)q(el)k Fl(String)13 b(lab)q(el)h(describing)g
(published)g(comm)o(unicator.)75 1366 y Fi(IN)i(p)q(ersistence)p
382 1366 V 15 w(\015ag)k Fl(Either)15 b Fh(MPI)p 685 1366 14
2 v 15 w(EPHEMERAL)d Fl(or)i Fh(MPI)p 1027 1366 V 15 w(PERSISTENT)p
Fl(.)75 1446 y(This)e(op)q(eration)g(results)h(in)f(the)h(asso)q(ciation)f
(of)f(the)i(comm)o(unicator)d Fh(comm)h Fl(with)h(the)h(name)e(sp)q
(eci\014ed)i(in)f(lab)q(el,)75 1496 y(with)32 b(global)f(scop)q(e.)75
b(P)o(ersistence)35 b(is)d(either)i(ephemeral)e(\(one)g(subscrib)q(e)j
(causes)f(an)e(automatic)75 1545 y Fh(MPI)p 144 1545 V 15 w(COMM)p
247 1545 V 15 w(UNPUBLISH)p Fl(\),)11 b(or)j(p)q(ersisten)o(t)i(\(an)d
(explicit)g Fh(MPI)p 1025 1545 V 16 w(COMM)p 1129 1545 V 14
w(UNPUBLISH)f Fl(m)o(ust)h(b)q(e)h(subsequen)o(tly)h(called\))75
1595 y(and)e(an)o(y)f(n)o(um)o(b)q(er)h(of)f(subscriptions)i(can)f(o)q(ccur.)
19 b(This)13 b(op)q(eration)g(do)q(es)g(not)g(w)o(ait)f(for)h(subscriptions)h
(to)f(o)q(ccur)75 1645 y(b)q(efore)i(returning.)j(Only)c(one)g(pro)q(cess)i
(calls)d(this)h(function.)158 1695 y(Subsequen)o(t)108 b(calls)e(to)g
Fh(MPI)p 867 1695 V 15 w(COMM)p 970 1695 V 15 w(PUBLISH)f Fl(with)h(the)h
(same)f(lab)q(el)75 1745 y(\(without)14 b(an)f(in)o(terv)o(ening)h
Fh(MPI)p 588 1745 V 15 w(COMM)p 691 1745 V 15 w(UNPUBLISH)p
Fl(\))e(is)i(erroneous.)158 1877 y Fg(Discussion:)k Ff(Should)d(w)o(e)e(ha)o
(v)o(e)g(a)g(p)q(ermissions)j(\015ag)d(that)g(implemen)o(ts)i(access)f
(restrictions)h(similar)g(to)e(Unix.)89 2010 y Fi(MPI)p 188
2010 15 2 v 17 w(COMM)p 365 2010 V 18 w(UNPUBLISH\(lab)q(el\))75
2160 y(IN)j(lab)q(el)k Fl(String)13 b(lab)q(el)h(describing)g(published)g
(comm)o(unicator.)75 2240 y(This)j(is)g(an)h(op)q(eration)f(undertak)o(en)h
(b)o(y)f(a)g(single)g(pro)q(cess,)j(whose)e(e\013ect)h(is)e(to)g(remo)o(v)o
(e)g(the)h(asso)q(ciation)f(of)75 2290 y(the)c(comm)o(unicator)d(sp)q
(eci\014ed)k(in)d(a)i(preceding)g Fh(MPI)p 915 2290 14 2 v
15 w(COMM)p 1018 2290 V 15 w(PUBLISH)e Fl(call)g(with)h(the)h(name)f(sp)q
(eci\014ed)i(in)e Fh(label)p Fl(.)75 2340 y Fh(MPI)p 144 2340
V 15 w(COMM)p 247 2340 V 15 w(UNPUBLISH)g Fl(on)i(an)f(unde\014ned)i(lab)q
(el)f(will)e(b)q(e)j(ignored.)89 2390 y Fi(MPI)p 188 2390 15
2 v 17 w(COMM)p 365 2390 V 18 w(SUBSCRIBE\(m)o(y)p 744 2390
V 16 w(comm,)h(lab)q(el,)f(comm\))75 2541 y(IN)h(m)o(y)p 213
2541 V 17 w(comm)21 b Fl(Comm)n(unicator)11 b(of)j(participan)o(ts)f(in)h
(subscrib)q(e.)75 2622 y Fi(IN)i(lab)q(el)k Fl(String)13 b(lab)q(el)h
(describing)g(comm)o(unicator)d(to)j(whic)o(h)g(w)o(e)g(wish)f(to)h(subscrib)
q(e)75 2704 y Fi(OUT)i(comm)k Fl(Comm)o(unicator)11 b(created)k(through)f
(subscription)h(pro)q(cess.)p eop
%%Page: 10 11
bop 75 -100 a Fl(10)75 45 y(This)12 b(is)f(a)h(collectiv)o(e)g(comm)o
(unicatio)o(n)d(in)j(the)g(group)g(sp)q(eci\014ed)h(in)f Fh(my)p
1196 45 14 2 v 15 w(comm)p Fl(,)f(whic)o(h)g(has)h(the)h(e\013ect)g(of)f
(creating)75 95 y(in)g(eac)o(h)h(group)g(pro)q(cess)h(a)e(cop)o(y)h(of)f(the)
h(previously)f(published)h(comm)o(unicator)c(asso)q(ciated)14
b(with)e(the)h(name)e(in)75 145 y(lab)q(el.)17 b(This)d(op)q(eration)g(blo)q
(c)o(ks)g(un)o(til)f(suc)o(h)i(an)e(asso)q(ciation)h(is)f(p)q(ossible.)158
196 y(Once)22 b(an)e Fh(MPI)p 404 196 V 15 w(COMM)p 507 196
V 15 w(PUBLISH)f Fl(and)i(an)f Fh(MPI)p 913 196 V 15 w(COMM)p
1016 196 V 15 w(SUBSCRIBE)f Fl(on)h(the)h(same)f(lab)q(el)g(ha)o(v)o(e)h(o)q
(ccurred,)75 246 y(the)d(subscrib)q(er)i Fh(my)p 399 246 V
16 w(comm)d Fl(has)h(the)g(abilit)o(y)e(to)i(send)h(messages)f(to)f(the)i
(publisher;)h(group)d(mem)o(b)q(ers)g(of)g(the)75 295 y(published)h(comm)o
(unicator)e(ha)o(v)o(e)i(the)g(abilit)o(y)f(to)h(receiv)o(e)h(messages)f
(using)g(the)h(published)f(comm)o(unicator.)75 345 y(The)c(comm)o(unicators)e
(so)i(de\014ned)h(ma)o(y)d(only)h(b)q(e)h(used)h(in)e(p)q(oin)o(t-to-p)q(oin)
o(t)g(comm)o(unication.)158 479 y Fg(Discussion:)92 b Ff(Do)50
b(w)o(e)g(w)o(an)o(t)g(an)o(y)g(of)g(the)g(follo)o(wing)i Fa(MPI)p
1340 479 12 2 v 13 w(COMM)p 1433 479 V 13 w(SUBSCRIBE)p 1625
479 V 10 w(NON)p 1696 479 V 13 w(BLOCKING)p Ff(,)75 529 y Fa(MPI)p
137 529 V 13 w(COMM)p 230 529 V 13 w(SUBSCRIB)o(E)p 422 529
V 11 w(PROBE)p Ff(,)11 b(etc...)75 725 y Fi(The)17 b(symmetric)e(case)42
b Fl(is)15 b(constructed)i(as)e(follo)o(ws:)j(Group)d(\\A")g(and)f(\\B")h
(wish)g(to)g(build)f(a)h(symmetric)75 775 y(in)o(ter-group)f(comm)o(unicatio)
o(n)d(structure.)75 826 y(\\A")i(group:)249 914 y Fh(mpi_contexts_alloc\()o
(A_com)o(m,)19 b(1,)i(context1\))249 964 y(mpi_comm_dup\(A_comm)o(,)e
(context1,)h(A_comm1\))249 1013 y(mpi_comm_rank\(A_com)o(m,)f(rank\))249
1063 y(if\(rank)i(==)g(0\))g(then)315 1113 y(mpi_comm_publish)o(\(A_co)o
(mm1,)d("A_comm1",)i(MPI_EPHEMERAL\))249 1163 y(endif)249 1213
y(/*)i([OTHER)e(WORK)h(UNRELATED)f(TO)i(THIS)f(OPERATION])e(*/)249
1262 y(mpi_comm_subscribe\()o(A_com)o(m,)g("B_comm1",)g(B_comm1\))249
1312 y(mpi_comm_merge\(A_co)o(mm1,)f(B_comm1,)j(Send_to_B,)e(Recv_from_B\))
249 1362 y(mpi_comm_free\(A_com)o(m1\))249 1412 y(mpi_comm_free\(B_com)o
(m1\))75 1498 y Fl(\\B")14 b(group:)249 1586 y Fh(mpi_contexts_alloc\()o
(B_com)o(m,)19 b(1,)i(context1\))249 1636 y(mpi_comm_dup\(B_comm)o(,)e
(context1,)h(B_comm1\))249 1686 y(mpi_comm_rank\(B_com)o(m,)f(rank\))249
1735 y(if\(rank)i(==)g(0\))g(then)315 1785 y(mpi_comm_publish)o(\(B_co)o
(mm1,)d("B_comm1",)i(MPI_EPHEMERAL\))249 1835 y(endif)249 1885
y(/*)i([OTHER)e(WORK)h(UNRELATED)f(TO)i(THIS)f(OPERATION])e(*/)249
1935 y(mpi_comm_subscribe\()o(B_com)o(m,)g("A_comm1",)g(A_comm1\))249
1984 y(mpi_comm_merge\(B_co)o(mm1,)f(A_comm1,)j(Send_to_B,)e(Recv_from_B\))
249 2034 y(mpi_comm_free\(B_com)o(m1\))249 2084 y(mpi_comm_free\(A_com)o
(m1\))75 2171 y Fl(F)m(or)d(example,)f(elemen)o(ts)h(of)g(the)h(\\B")f(group)
g(use)h Fh(Send)p 997 2171 14 2 v 15 w(to)p 1056 2171 V 15
w(A)f Fl(to)g(send)h(to)f(elemen)o(ts)g(of)g(\\A,")g(whic)o(h)g(receiv)o(e)75
2220 y(suc)o(h)e(messages)f(in)f Fh(Recv)p 481 2220 V 15 w(from)p
584 2220 V 15 w(B)p Fl(.)h(Alternativ)o(ely)m(,)e(the)j(follo)o(wing)c
(function)j(is)g(rather)h(more)e(con)o(v)o(enien)o(t)h(when)75
2270 y(one)g(do)q(es)h(not)f(need)h(to)e(exploit)h(the)g(decoupling)g(of)f
(publish)h(and)f(subscrib)q(e)j(transactions,)e(and)g(is)g(as)g(follo)o(ws:)
130 2321 y Fi(MPI)p 229 2321 15 2 v 17 w(COMM)p 406 2321 V
18 w(PUBLISH)p 639 2321 V 16 w(SUBSCRIBE\(comm)p 1077 2321
V 16 w(A,)63 b(lab)q(el)p 1306 2321 V 16 w(A,)g(lab)q(el)p
1535 2321 V 15 w(B,)g(send)p 1755 2321 V 16 w(to)p 1814 2321
V 17 w(B,)75 2406 y(recv)p 166 2406 V 17 w(from)p 282 2406
V 16 w(B\))75 2528 y(IN)16 b(comm)p 274 2528 V 17 w(A)21 b
Fl(Comm)o(uni)o(cator)12 b(to)h(b)q(e)i(duplicated)f(and)g(published)75
2616 y Fi(IN)i(lab)q(el)p 250 2616 V 16 w(A)21 b Fl(Lab)q(el)14
b(of)f(published,)g(duplicated)h(comm)o(unicator)75 2704 y
Fi(IN)i(lab)q(el)p 250 2704 V 16 w(B)21 b Fl(Lab)q(el)13 b(of)h(comm)o
(unicator)d(to)j(whic)o(h)f(w)o(e)h(w)o(an)o(t)g(to)g(subscrib)q(e)p
eop
%%Page: 11 12
bop 75 -100 a Fm(3.9.)31 b(CA)o(CHEING)1433 b Fl(11)75 45 y
Fi(OUT)16 b(send)p 295 45 15 2 v 16 w(to)p 354 45 V 16 w(B)21
b Fl(V)m(alid)12 b(send)j(comm)o(unicator)c(for)j(talking)e(to)i(the)h(other)
f(group.)75 123 y Fi(OUT)i(recv)p 288 123 V 17 w(from)p 404
123 V 16 w(B)21 b Fl(V)m(alid)12 b(receiv)o(e)j(comm)o(unicator)c(for)j
(talking)e(to)i(the)h(other)f(group.)75 196 y(This)g(call)f(is)h(alw)o(a)o
(ys)e(done)j(in)e(pairs)h(as)g(follo)o(ws:)i(\\A")e(group:)140
270 y Fh(MPI_COMM_PUBLISH_SU)o(BSCRI)o(BE\(co)o(mm_A,)k("comm_A",)i
("comm_B",)g(Send_to_B,)729 319 y(Recv_from_B\))75 393 y Fl(\\B")14
b(group:)140 466 y Fh(MPI_COMM_PUBLISH_SU)o(BSCRI)o(BE\(co)o(mm_B,)k
("comm_B",)i("comm_A",)g(Send_to_A,)729 516 y(Recv_from_A\))89
589 y Fi(MPI)p 188 589 V 17 w(COMM)p 365 589 V 18 w(JOIN\(lo)q(cal)p
615 589 V 16 w(comm,)c(remote)p 932 589 V 16 w(comm)p 1073
589 V 17 w(send,)75 674 y(remote)p 225 674 V 16 w(comm)p 366
674 V 17 w(recv,)g(order,)f(joined)p 770 674 V 14 w(comm\))75
783 y(IN)h(lo)q(cal)p 246 783 V 17 w(comm)k Fl(Comm)o(unicator)11
b(describing)j(lo)q(cal)f(group)75 861 y Fi(IN)j(remote)p 296
861 V 16 w(comm)p 437 861 V 17 w(send)k Fl(Comm)n(unicator)11
b(describing)k(remote)e(group)75 939 y Fi(IN)j(remote)p 296
939 V 16 w(comm)p 437 939 V 17 w(recv)21 b Fl(Comm)o(uni)o(cator)11
b(describing)k(remote)e(group)75 1017 y Fi(IN)j(order)k Fl(If)13
b Fh(local)p 433 1017 14 2 v 15 w(comm)g Fl(is)h(\014rst,)g(then)g
Fh(MPI)p 848 1017 V 15 w(TRUE)p Fl(,)f(else)i Fh(MPI)p 1121
1017 V 15 w(FALSE)75 1095 y Fi(OUT)h(joined)p 329 1095 15 2
v 15 w(comm)k Fl(Merged)15 b(comm)o(unicator)75 1168 y(This)9
b(function)g(creates)i(the)f(merged)f(comm)o(unicator)d Fh(joined)p
1066 1168 14 2 v 15 w(comm)i Fl(giv)o(en)h(a)g(lo)q(cal)f(comm)o(unicator)f
(\()p Fh(local)p 1797 1168 V 15 w(comm)p Fl(\))75 1218 y(and)17
b(a)f(pair)h(of)f(remote)g(comm)o(unicators)f(\(obtained)h(from)f
Fh(MPI)p 1126 1218 V 15 w(COMM)p 1229 1218 V 15 w(MERGE)p Fl(\).)h(The)h
(function)f(sync)o(hronizes)75 1268 y(o)o(v)o(er)i(the)h(underlying)f(groups)
g(of)g(b)q(oth)g(comm)o(unicators,)f(and)h(pro)q(duces)h(a)f(new,)i(merged)d
(comm)o(unicator,)75 1318 y(whose)h(group)f(is)g(the)h(ordered)g(union)f(of)g
(the)h(t)o(w)o(o)e(underlying)h(groups)h(\(see)g Fh(MPI)p 1424
1318 V 15 w(GROUP)p 1549 1318 V 15 w(UNION)p Fl(\).)e(The)i(new)75
1368 y(comm)o(unicator)11 b(has)j(a)g(unique)g(con)o(text)g(of)f(comm)o
(unication.)75 1503 y Fk(3.9)70 b(Cac)n(heing)75 1594 y Fl(Cac)o(heing)13
b(is)f(the)i(pro)q(cess)h(b)o(y)d(whic)o(h)h(implemen)o(tation-)o(de\014ned)e
(data)i(is)g(propagated)g(in)f(groups)h(and)g(comm)o(u-)75
1644 y(nicators.)75 1758 y Fe(3.9.1)55 b(Cac)n(heing)20 b(in)g(Groups)75
1843 y(3.9.2)55 b(Cac)n(heing)20 b(in)g(Comm)n(unicators)75
1919 y Fl(TBD.)75 2054 y Fk(3.10)70 b(Con)n(texts,)23 b(Comm)n(unicators,)e
(and)j(\\Safet)n(y")75 2145 y Fl(When)15 b(a)g(caller)g(passes)i(a)e(comm)o
(unicator)d(\(whic)o(h)j(con)o(tains)g(a)g(con)o(text)h(and)f(group\))g(to)g
(a)g(callee,)g(that)g(com-)75 2195 y(m)o(unicator)j(m)o(ust)g(b)q(e)h(free)h
(of)f(side)g(e\013ects)j(on)d(en)o(try)g(and)g(exit)g(to)g(the)h(subprogram.)
33 b(This)19 b(pro)o(vides)g(the)75 2245 y(basic)13 b(guaran)o(tee)g(of)g
(safet)o(y)m(.)k(The)c(callee)g(has)g(p)q(ermission)f(to)h(do)g(whatev)o(er)g
(comm)o(unication)d(it)i(lik)o(es)h(with)f(the)75 2295 y(comm)o(unicator,)g
(and)j(under)g(the)h(ab)q(o)o(v)o(e)f(guaran)o(tee)g(kno)o(ws)g(that)g(no)g
(other)g(comm)o(unications)d(will)h(in)o(terfere.)75 2345 y(Since)f(w)o(e)g
(p)q(ermit)f(the)h(creation)g(of)f(new)h(comm)o(unicators)d(without)j(sync)o
(hronization)f(\(assuming)g(preallo)q(cated)75 2394 y(con)o(texts\),)k(this)f
(do)q(es)g(not)g(imp)q(ose)f(a)g(signi\014can)o(t)h(o)o(v)o(erhead.)158
2444 y(This)h(form)f(of)h(safet)o(y)g(is)h(analogous)e(to)h(other)h(common)d
(computer)i(science)i(usages,)f(suc)o(h)g(as)g(passing)f(a)75
2494 y(descriptor)k(of)e(an)g(arra)o(y)g(to)g(a)h(library)e(routine.)29
b(The)18 b(library)f(routine)h(has)f(ev)o(ery)i(righ)o(t)e(to)g(exp)q(ect)i
(suc)o(h)f(a)75 2544 y(descriptor)d(to)f(b)q(e)g(v)n(alid)f(and)g(mo)q
(di\014able.)158 2594 y(Note)h(that)g Fh(MPI)p 417 2594 V 15
w(UNDEFINED)e Fl(is)h(the)h(rank)g(for)f(pro)q(cesses)j(that)e(are)g(sending)
g(to)g(the)g(comm)o(unicator)d(from)75 2643 y(outside)j(the)h(group.)k(This)
14 b(can)g(result)h(through)f(the)g(publish)g(&)g(subscrib)q(e)i(mec)o
(hanism,)c(or)i(b)o(y)f(virtue)i(of)e(the)75 2693 y(transmission)g(of)g
(\015atten)h(comm)o(unicators)e(\(and)i(their)g(subsequen)o(t)i
(un\015attening)e(and)f(use\).)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF