Proposal for Handlers (postscript)

Carter Edwards : carter@ticam.utexas.edu (carter@ticam.utexas.edu)
Fri, 9 Feb 1996 16:35:12 -0600 (CST)

%!PS-Adobe-2.0
%%Creator: dvips 5.490 Copyright 1986, 1992 Radical Eye Software
%%Title: handler.dvi
%%Pages: 3 1
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSCommandLine: dvips handler
%%BeginProcSet: tex.pro
%!
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}
B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0]
concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize
-72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix
currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put
setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed
true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N
/IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix
fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{
CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn
put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0
0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data
dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128
ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127
sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N
/cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get
S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height
sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0
-1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{/cc X dup
type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1
ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}
B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/FV}{/RV}ifelse load def pop}N /eop{SI restore showpage userdict
/eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}
if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE
S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div
/hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley
0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{pop
product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval
(NeXT)eq or}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale
rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex
ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /FV{gsave
transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup
/delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}
B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0
rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}
B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B
/eos{SS restore}B end
%%EndProcSet
TeXDict begin 39158280 55380996 1000 300 300 @start /Fa 19
120 df<3078F06005047C830D>46 D<0000180000001800000038000000380000007800000078
000000B8000001B800000138000002380000023C0000041C0000041C0000081C0000181C000010
1C0000201C0000201C00007FFC0000401C0000801C0001801C0001001C0002001C0002001C0004
000E000C000E001C001E00FF00FFC01A1D7E9C1F>65 D<03CC063C0C3C181C3838303870387038
E070E070E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<01F007080C08181C383830
0070007000E000E000E000E000E000E008E010602030C01F000E127B9113>99
D<001F80000380000380000700000700000700000700000E00000E00000E00000E0003DC00063C
000C3C00181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E200C0E2
0061E4006264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000
E000E000E0086010602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C00
00380000380000380000380000380003FF8000700000700000700000700000700000E00000E000
00E00000E00000E00001C00001C00001C00001C00001C000038000038000038000030000030000
070000C60000E60000CC00007800001425819C0D>I<0FC00001C00001C0000380000380000380
000380000700000700000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E
00381C00381C00381C00383800703880703880707080707100E03200601C00111D7D9C15>104
D<01800380010000000000000000000000000000001C002600470047008E008E000E001C001C00
1C0038003800710071007100720072003C00091C7C9B0D>I<1F80038003800700070007000700
0E000E000E000E001C001C001C001C0038003800380038007000700070007000E400E400E400E4
0068003800091D7C9C0B>108 D<3C3C002646004687004707008E07008E07000E07000E07001C
0E001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117>110
D<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E000F12
7B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C003
81800703800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00003C
0000FF8000131A7F9115>I<3C3C26C2468747078E068E000E000E001C001C001C001C00380038
00380038007000300010127C9112>114 D<01F006080C080C1C18181C001F001FC00FF007F000
7800386030E030C030806060C01F000E127D9111>I<00C001C001C001C00380038003800380FF
E00700070007000E000E000E000E001C001C001C001C00384038403840388019000E000B1A7D99
0E>I<1E0300270700470700470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C00
3838803838801838801839001C5900078E0011127C9116>I<1E06270E470E4706870287020E02
0E021C041C041C041C0818083808181018200C4007800F127C9113>I<1E018327038747038747
03838707018707010E07010E07011C0E021C0E021C0E021C0E04180C04181C04181C081C1C100C
263007C3C018127C911C>I E /Fb 32 123 df<000700000F00007F0007FF00FFFF00FFFF00F8
FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
FF0000FF0000FF0000FF007FFFFE7FFFFE7FFFFE17277BA622>49 D<00FF800007FFF0001FFFFC
003F03FF007C00FF807F007FC0FF807FC0FF803FE0FF803FE0FF803FE0FF801FE07F001FE01C00
3FE000003FE000003FC000003FC000007F8000007F800000FF000001FE000001FC000003F00000
07E000000FC000001F8000003E00E0007C00E0007800E000F001C001C001C0038001C007FFFFC0
0FFFFFC01FFFFFC03FFFFFC07FFFFF80FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F8000
01FFF00007FFFC000F81FE001F80FF003FC0FF003FE07F803FE07F803FE07F803FE07F803FE07F
801FC0FF800700FF000000FF000001FE000003F8000007F00000FFC00000FFF0000001FC000000
FF0000007F8000007FC000003FC000003FE01E003FE07F803FE07F803FE0FFC03FE0FFC03FE0FF
C03FE0FFC03FC0FFC07FC07F807F807E00FF803F01FF000FFFFC0003FFF00000FF80001B277DA6
22>I<0000070000000F0000001F0000003F0000007F000000FF000000FF000001FF000003FF00
00077F00000F7F00000E7F00001C7F0000387F0000707F0000F07F0000E07F0001C07F0003807F
0007007F000F007F000E007F001C007F0038007F0070007F00E0007F00FFFFFFF8FFFFFFF8FFFF
FFF80000FF000000FF000000FF000000FF000000FF000000FF000000FF00007FFFF8007FFFF800
7FFFF81D277EA622>I<0C0003000F803F000FFFFE000FFFFE000FFFFC000FFFF8000FFFE0000F
FFC0000FFE00000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF800
0F80FC000E007F000C007F8000003F8000003FC000003FC000003FE000003FE03E003FE07F003F
E0FF803FE0FF803FE0FF803FE0FF803FC0FF003FC07E007FC078007F803C00FF001F01FE000FFF
F80003FFE00000FF00001B277DA622>I<01FF000FFFE03E03F87803FC7E01FCFF01FEFF01FEFF
01FEFF01FEFF01FE7E03FC0003FC0007F0000FE0000F80001F00001E00003C00003C0000780000
780000700000700000700000700000700000700000000000000000000000000000000000000000
700001FC0003FE0003FE0003FE0003FE0003FE0001FC00007000172A7CA920>63
D<FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE03FE0000FF8003FE0000FF8003FE0000FF8003FE
0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF
8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FFFFFFFF8003FF
FFFFFF8003FFFFFFFF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF
8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE
0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF8003FE0000FF80FFFFF83FFF
FEFFFFF83FFFFEFFFFF83FFFFE2F297DA836>72 D<FFFFFE0000FFFFFE0000FFFFFE000003FE00
000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE
00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003
FE00000003FE00000003FE00000003FE00000003FE00000003FE0001C003FE0001C003FE0001C0
03FE0001C003FE0003C003FE00038003FE00038003FE00078003FE00078003FE000F8003FE000F
8003FE001F8003FE007F8003FE01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
D<FFFF0000003FFFC0FFFF0000003FFFC0FFFF8000007FFFC003FF8000007FF00003FF8000007F
F00003BFC00000EFF00003BFC00000EFF000039FE00001CFF000039FE00001CFF000038FF00003
8FF000038FF000038FF000038FF000038FF0000387F800070FF0000387F800070FF0000383FC00
0E0FF0000383FC000E0FF0000381FE001C0FF0000381FE001C0FF0000381FE001C0FF0000380FF
00380FF0000380FF00380FF00003807F80700FF00003807F80700FF00003803FC0E00FF0000380
3FC0E00FF00003803FC0E00FF00003801FE1C00FF00003801FE1C00FF00003800FF3800FF00003
800FF3800FF000038007FF000FF000038007FF000FF000038007FF000FF000038003FE000FF000
038003FE000FF000038001FC000FF000038001FC000FF000038000F8000FF000FFFE00F803FFFF
C0FFFE00F803FFFFC0FFFE007003FFFFC03A297DA841>I<FFFFFFE00000FFFFFFFE0000FFFFFF
FF800003FE007FE00003FE000FF00003FE0007F80003FE0007FC0003FE0003FC0003FE0003FE00
03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FC0003FE00
07F80003FE0007F80003FE001FE00003FE007FC00003FFFFFE000003FFFFFC000003FE01FF0000
03FE007FC00003FE007FE00003FE003FE00003FE003FF00003FE001FF00003FE001FF00003FE00
1FF00003FE001FF00003FE001FF00003FE001FF00003FE001FF00003FE001FF00003FE001FF007
03FE001FF00703FE000FF80703FE000FF80FFFFFF807FE1EFFFFF801FFFCFFFFF8003FF030297D
A834>82 D<007F806003FFF0E00FFFFFE01F807FE03F001FE03E0007E07E0003E07C0003E0FC00
01E0FC0001E0FC0000E0FE0000E0FF0000E0FF800000FFF80000FFFF80007FFFF8007FFFFE003F
FFFF001FFFFFC00FFFFFC007FFFFE001FFFFF0003FFFF00001FFF800001FF8000007F8000007F8
E00003F8E00001F8E00001F8E00001F8F00001F8F00001F0F80003F0FC0003E0FF0007E0FFE01F
C0FFFFFF00E0FFFE00C01FF0001D297CA826>I<FFFFF801FFFCFFFFF801FFFCFFFFF801FFFC03
FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000
070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003
FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000
070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003FE0000070003
FE0000070003FE00000F0001FE00000E0001FF00000E0000FF00001E0000FF80003C00007F8000
7800003FC000F800001FF807E0000007FFFFC0000001FFFF000000001FF800002E297DA835>85
D<FFFFF87FFFF807FFF0FFFFF87FFFF807FFF0FFFFF87FFFF807FFF003FE0001FF00001C0003FE
0001FF00001C0001FF0001FF8000380001FF0000FF8000380001FF8000FF8000780000FF8000FF
C000700000FF8000FFC000700000FFC000FFE000F000007FC001FFE000E000007FE001FFE000E0
00003FE003FFF001C000003FE0039FF001C000003FF0039FF003C000001FF0070FF8038000001F
F0070FF8038000001FF80F0FFC078000000FF80E07FC070000000FFC0E07FC0700000007FC1E07
FE0E00000007FC1C03FE0E00000007FE1C03FE1E00000003FE3801FF1C00000003FE3801FF1C00
000001FF7801FFB800000001FF7000FFB800000001FFF000FFB800000000FFF000FFF000000000
FFE0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC0003FE0000000003FC000
3FC0000000003F80001FC0000000003F80001FC0000000001F80001F80000000001F00000F8000
0000001F00000F80000000000E00000700000044297FA847>87 D<01FF80000FFFF0001F81FC00
3FC0FE003FC07F003FC07F003FC03F803FC03F800F003F8000003F8000003F80000FFF8000FFFF
8007FC3F801FE03F803F803F807F803F807F003F80FE003F80FE003F80FE003F80FE007F80FF00
7F807F00FFC03F83DFFC0FFF0FFC01FC03FC1E1B7E9A21>97 D<001FF00000FFFE0003F03F000F
E07F801FC07F803F807F803F807F807F807F807F001E00FF000000FF000000FF000000FF000000
FF000000FF000000FF000000FF000000FF0000007F0000007F8000003F8001C03FC001C01FC003
C00FE0078003F01F0000FFFC00001FE0001A1B7E9A1F>99 D<00003FF80000003FF80000003FF8
00000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003
F800000003F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF8000FE0
0FF8001FC007F8003F8003F8003F8003F8007F8003F8007F0003F800FF0003F800FF0003F800FF
0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F800
7F0003F8003F8003F8003F8007F8001FC00FF8000FE01FF80003F03FFF8000FFF3FF80003FC3FF
80212A7EA926>I<003FE00001FFF80003F07E000FE03F001FC01F803F800FC03F800FC07F000F
C07F0007E0FF0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF000000FF00
00007F0000007F8000003F8000E03F8001E01FC001C00FE003C003F81F8000FFFE00001FF0001B
1B7E9A20>I<00FF81F003FFE7FC0FC1FE7C1F80FCFC3F80FE7C3F007E387F007F007F007F007F
007F007F007F007F007F007F007F003F007E003F80FE001F80FC000FC1F8001FFFE00018FF8000
380000003C0000003C0000003E0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01FFFFF
F07E0007F87C0001F8F80001F8F80000F8F80000F8F80000F8FC0001F87E0003F03F0007E00FC0
1F8003FFFE00007FF0001E287E9A22>103 D<FFE0000000FFE0000000FFE00000000FE0000000
0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
000FE00000000FE00000000FE00000000FE07F00000FE1FFC0000FE787E0000FEE07F0000FFC03
F8000FF803F8000FF003F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F8000FE0
03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926
>I<07001FC03FE03FE03FE03FE03FE01FC007000000000000000000000000000000FFE0FFE0FF
E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE000000FE000000FE000000FE0
00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F
E01FFC0FE01FFC0FE01FFC0FE007C00FE00F800FE01E000FE07C000FE0F8000FE1F0000FE3E000
0FE7C0000FEFE0000FFFF0000FFFF0000FFFF8000FF3FC000FE1FE000FC0FE000FC0FF000FC07F
800FC03F800FC03FC00FC01FE00FC00FF0FFFC3FFEFFFC3FFEFFFC3FFE1F2A7EA924>107
D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
E0FFFEFFFEFFFE0F2A7DA914>I<FFC07F0000FFC1FFC000FFC787E0000FCE07F0000FDC03F800
0FF803F8000FF003F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8
000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>
110 D<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007F0
7F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007
F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>
I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F8000FF001FC000FE001FE000FE000FE000FE000
FF000FE000FF000FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0
007F800FE0007F800FE0007F800FE000FF000FE000FF000FE000FE000FF001FE000FF003FC000F
F803F8000FFE0FE0000FEFFF80000FE1FC00000FE00000000FE00000000FE00000000FE0000000
0FE00000000FE00000000FE00000000FE00000000FE0000000FFFE000000FFFE000000FFFE0000
0021277E9A26>I<001FC0380000FFF0780003F83CF8000FE01FF8001FE00FF8003FC007F8003F
8007F8007F8003F8007F8003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800
FF0003F800FF0003F800FF0003F800FF0003F8007F8003F8007F8003F8003F8003F8003FC007F8
001FC00FF8000FE01FF80003F07FF80000FFF3F800003FC3F800000003F800000003F800000003
F800000003F800000003F800000003F800000003F800000003F800000003F80000003FFF800000
3FFF8000003FFF8021277E9A24>I<FFC3F0FFCFFCFFDC7E0FD8FF0FF8FF0FF0FF0FF0FF0FF0FF
0FE03C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000
0FE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>I<03FE300FFFF03E03F07800F07000
F0F00070F00070F80070FC0000FFE000FFFE007FFFC03FFFE01FFFF007FFF800FFFC0003FC0000
FCE0007CE0003CF0003CF0003CF80078FC0078FF01F0F7FFC0C1FF00161B7E9A1B>I<00700000
700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007
F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F03807F03807F03807F03807F03807F03807F03803F87001F8F000FFE0001F8015267FA51B>I<
FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F8000FE007F8000FE00FF80007E0
1FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03FF
8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE03
800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC0000001F
DC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E0000000
01C000000001C000000003800000000380000038078000007C07000000FE0F000000FE0E000000
FE1E000000FE3C0000007C780000003FE00000000FC000000021277F9A24>121
D<3FFFFF803FFFFF803F00FF803C00FF003801FE007803FC007807FC007007F800700FF000701F
E000001FE000003FC000007F800000FF800000FF000001FE038003FC038003FC038007F803800F
F007801FF007801FE007003FC00F007F801F00FF807F00FFFFFF00FFFFFF00191B7E9A1F>I
E /Fc 61 123 df<003F0000FF8003C1C00703C00703C00E01800E00000E00000E00000E00000E
0000FFFFC0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C07F87F87F87F8151D809C17>12 D<003FC000FFC003C3C00703C00701
C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC0FFFFC00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF87FCFF8151D809C17
>I<7070F8F8FCFCFCFC7C7C0C0C0C0C0C0C181818183030606040400E0D7F9C15>34
D<70F8FCFC7C0C0C0C1818306040060D7D9C0C>39 D<00C00180030006000E000C001C00180038
00300030007000700060006000E000E000E000E000E000E000E000E000E000E000E000E0006000
60007000700030003000380018001C000C000E0006000300018000C00A2A7D9E10>I<C0006000
300018001C000C000E000600070003000300038003800180018001C001C001C001C001C001C001
C001C001C001C001C001C0018001800380038003000300070006000E000C001C00180030006000
C0000A2A7E9E10>I<70F0F8F8781818183030706040050D7D840C>44 D<FFE0FFE0FFE00B0380
890E>I<70F8F8F87005057D840C>I<030007003F00FF00C7000700070007000700070007000700
07000700070007000700070007000700070007000700070007000700FFF8FFF80D1C7C9B15>49
D<07C01FF03878603C601EF01EF80FF80FF80F700F000F000E001E001C003C0078007000E001C0
038007000E030C03180330067FFEFFFEFFFE101C7E9B15>I<07E01FF03838301C781E781E781E
381E001E003C0038007007E007E00038001C001E000E000F000F700FF80FF80FF80EF01E601C38
381FF007C0101D7E9B15>I<00F003FC070C0E0E1C1E381E380C780070007000F3F0F7F8FC1CF8
1EF80EF00EF00FF00FF00FF00FF00F700F700F700E380E381C1C380FF003E0101D7E9B15>54
D<03C00FF01C38381C781C700EF00EF00EF00FF00FF00FF00FF00F700F701F781F383F1FEF0FCF
000E000E000E301C781C7838703030F03FC00F80101D7E9B15>57 D<70F8F8F870000000000000
000070F8F8F87005127D910C>I<70F8F8F870000000000000000070F0F8F87818181830307060
40051A7D910C>I<00060000000F0000000F0000000F0000001F8000001F8000001F8000001F80
000033C0000033C0000033C0000061E0000061E0000061E00000C0F00000C0F00000C0F0000180
78000180780001FFF80003FFFC0003003C0003003C0006001E0006001E0006001E001F001F00FF
C0FFF0FFC0FFF01C1D7F9C1F>65 D<FFFFC0FFFFF00F00F80F003C0F001C0F001E0F001E0F001E
0F001E0F001C0F003C0F00780FFFF00FFFE00F00F80F003C0F001E0F001E0F000F0F000F0F000F
0F000F0F000F0F001E0F003E0F007CFFFFF8FFFFC0181C7E9B1D>I<001F808000FFE18003F033
8007801B800F000F801E0007801C0003803C000380780003807800018070000180F0000180F000
0000F0000000F0000000F0000000F0000000F0000000F00000007000018078000180780001803C
0001801C0003001E0003000F00060007800C0003F0380000FFF000001F8000191E7E9C1E>I<FF
FFFCFFFFFC0F007C0F001C0F000C0F000E0F00060F03060F03060F03060F03000F07000FFF000F
FF000F07000F03000F03000F03030F03030F00030F00060F00060F00060F000E0F001E0F007CFF
FFFCFFFFFC181C7E9B1C>69 D<FFFFF8FFFFF80F00780F00380F00180F001C0F000C0F000C0F03
0C0F030C0F03000F03000F07000FFF000FFF000F07000F03000F03000F03000F03000F00000F00
000F00000F00000F00000F0000FFF800FFF800161C7E9B1B>I<FFF3FFC0FFF3FFC00F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC00
0FFFFC000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C
000F003C000F003C000F003C00FFF3FFC0FFF3FFC01A1C7E9B1F>72 D<FFF0FFF00F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
000F00FFF0FFF00C1C7F9B0F>I<FFF800FFF8000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00180F00180F00180F00180F
00380F00300F00700F00F00F01F0FFFFF0FFFFF0151C7E9B1A>76 D<FF8000FF80FFC001FF800F
C001F8000FC001F8000DE00378000DE00378000DE00378000CF00678000CF00678000CF0067800
0C780C78000C780C78000C780C78000C3C1878000C3C1878000C3C1878000C1E3078000C1E3078
000C1E3078000C0F6078000C0F6078000C0F6078000C07C078000C07C078000C07C078001E0380
7800FFC387FF80FFC387FF80211C7E9B26>I<FF00FFC0FF80FFC00F801E000FC00C000FC00C00
0DE00C000CF00C000CF00C000C780C000C780C000C3C0C000C1E0C000C1E0C000C0F0C000C0F0C
000C078C000C07CC000C03CC000C01EC000C01EC000C00FC000C00FC000C007C000C003C000C00
3C001E001C00FFC01C00FFC00C001A1C7E9B1F>I<003F800000FFE00003E0F80007803C000E00
0E001E000F003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F0
0001E0F00001E0F00001E0F00001E0F00001E0780003C0780003C0780003C03C0007803C000780
1E000F000F001E0007803C0003E0F80000FFE000003F80001B1E7E9C20>I<FFFF80FFFFE00F00
F00F00380F003C0F001E0F001E0F001E0F001E0F001E0F001E0F003C0F00380F00F00FFFE00FFF
800F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000FFF000171C
7E9B1C>I<FFFF0000FFFFE0000F00F0000F0038000F003C000F001E000F001E000F001E000F00
1E000F001E000F003C000F0038000F00F0000FFFE0000FFFC0000F01E0000F00F0000F0078000F
0078000F0078000F0078000F0078000F0078000F0078000F0078300F003830FFF03C60FFF01FE0
000007C01C1D7E9B1F>82 D<07E0801FF9803C1F80700780700380E00380E00180E00180E00180
F00000F000007C00007FC0003FF8001FFE0007FF0000FF80000F800003C00003C00001C0C001C0
C001C0C001C0E00180E00380F00300FC0E00CFFC0083F800121E7E9C17>I<7FFFFFC07FFFFFC0
780F03C0700F01C0600F00C0E00F00E0C00F0060C00F0060C00F0060C00F0060000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F000003FFFC0003FFFC001B1C7F9B1E>I<FFF0FFC0FFF0
FFC00F001E000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F
000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C00
0F000C0007001800078018000380300001C0300000E0E000007FC000001F00001A1D7E9B1F>I<
FFE0FFE1FFFFE0FFE1FF1F001E007C0F001E00300F003F00300F003F00300F803F007007806780
600780678060078067806003C0E780C003C0C3C0C003C0C3C0C001E0C3C18001E181E18001E181
E18001E181E18000F381F30000F300F30000F300F300007B00F600007E007E00007E007E00007E
007E00003C003C00003C003C00003C003C00001C0038000018001800281D7F9B2B>87
D<FFF00FFCFFF00FFC078003C007C0038003C0030003E0060001F0060000F00C0000F81C000078
1800007C3800003C3000001E6000001F6000000FC000000FC00000078000000780000007800000
078000000780000007800000078000000780000007800000078000007FF800007FF8001E1C809B
1F>89 D<08081818303060606060C0C0C0C0C0C0F8F8FCFCFCFC7C7C38380E0D7B9C15>92
D<0FE0001FF8003C3C003C1E00180E00000E00001E0007FE001FFE003E0E00780E00F00E00F00E
60F00E60F01E60783E603FFFC01F878013127F9115>97 D<FC0000FC00001C00001C00001C0000
1C00001C00001C00001C00001C00001C00001C7E001DFF001F87801E01C01C01E01C00E01C00F0
1C00F01C00F01C00F01C00F01C00F01C00E01C01E01E01C01F078019FF00187C00141D7F9C17>
I<03F00FF81E3C383C78187000F000F000F000F000F000F000780078063C061E0C0FF803E00F12
7F9112>I<001F80001F8000038000038000038000038000038000038000038000038000038003
E3800FFB801E0F80380780780380700380F00380F00380F00380F00380F00380F0038070038078
03803807801E1F800FFBF007E3F0141D7F9C17>I<03E00FF01C38381C781E700EFFFEFFFEF000
F000F000F000700078063C061E0C0FF803E00F127F9112>I<007801FC039E071E0E0C0E000E00
0E000E000E000E00FFE0FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E
007FE07FE00F1D809C0D>I<00038007E7C00FFDC03C3DC0381C00781E00781E00781E00781E00
381C003C3C003FF00037E0007000007000003000003FFC001FFF003FFF80700780E001C0E001C0
E001C0E001C07003803C0F001FFE0007F800121C7F9215>I<FC0000FC00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C7C001DFF001F07001E03801E03801C03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0FF9FF0141D7F9C17
>I<38007C007C007C003800000000000000000000000000FC00FC001C001C001C001C001C001C
001C001C001C001C001C001C001C001C00FF80FF80091D7F9C0C>I<01C003E003E003E001C000
00000000000000000000000FE00FE000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E060E0F1C0F1C07F803E000B25839C0D>I<FC0000FC00001C00
001C00001C00001C00001C00001C00001C00001C00001C00001C7FC01C7FC01C3E001C18001C30
001C60001CC0001DE0001FE0001E70001C78001C38001C3C001C1C001C0E001C0F00FF9FE0FF9F
E0131D7F9C16>I<FC00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C00FF80FF80091D7F9C0C>I<FC7E07E000
FDFF9FF8001F83B838001E01E01C001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C
001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8
FF80FF8FF8FF8021127F9124>I<FC7C00FDFF001F07001E03801E03801C03801C03801C03801C
03801C03801C03801C03801C03801C03801C03801C0380FF9FF0FF9FF014127F9117>I<03F000
0FFC001E1E00380700780780700380F003C0F003C0F003C0F003C0F003C0F003C0700380780780
3807001E1E000FFC0003F00012127F9115>I<FC7E00FDFF001F87801E03C01C01E01C01E01C00
F01C00F01C00F01C00F01C00F01C00F01C01E01C01E01E03C01F07801DFF001C7C001C00001C00
001C00001C00001C00001C0000FF8000FF8000141A7F9117>I<03E1800FF9801E1F803C078078
0780780380F00380F00380F00380F00380F00380F003807803807807803C07801E1F800FFB8007
E380000380000380000380000380000380000380001FF0001FF0141A7F9116>I<FDE0FFF01F78
1E781E301C001C001C001C001C001C001C001C001C001C001C00FFC0FFC00D127F9110>I<1F90
3FF07070E030E030E030F8007F803FE00FF000F8C038C038E038E038F070DFE08FC00D127F9110
>I<0C000C000C000C000C001C001C003C00FFE0FFE01C001C001C001C001C001C001C001C001C
301C301C301C301C301E600FC007800C1A7F9910>I<FC1F80FC1F801C03801C03801C03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C07800C0F800FFBF003E3F01412
7F9117>I<FF0FE0FF0FE01C07801C03000E06000E06000E0600070C00070C00071C0003980003
980003F80001F00001F00000E00000E00000E00013127F9116>I<FF3FCFE0FF3FCFE01C0F0780
1C0F03001C1F03000E1B06000E1B86000E1B86000E318E000731CC000731CC000760CC0003E0F8
0003E0F80003E0F80001C0700001C0700001C070001B127F911E>I<7F8FF07F8FF00F07800706
00038E0001DC0001D80000F00000700000780000F80001DC00038E00030E000607000F0380FF8F
F8FF8FF81512809116>I<FF0FE0FF0FE01C07801C03000E06000E06000E0600070C00070C0007
1C0003980003980003F80001F00001F00000E00000E00000E00000C00000C00000C000F18000F1
8000C700007E00003C0000131A7F9116>I<7FFC7FFC7838707060F060E061C063C00380070C0F
0C0E0C1C1C3C1838187078FFF8FFF80E127F9112>I E /Fd 50 122 df<00E001E0038007000E
001C001C0038003800700070007000E000E000E000E000E000E000E000E000E000700070007000
380038001C001C000E000700038001E000E00B217A9C16>40 D<C000E000700038001C000E000E
000700070003800380038001C001C001C001C001C001C001C001C001C003800380038007000700
0E000E001C0038007000E000C0000A217B9C16>I<01C00001C00001C00001C00071C700F9CF80
7FFF001FFC0007F00007F0001FFC007FFF00F9CF8071C70001C00001C00001C00001C00011127E
9516>I<387C7E7E3E0E1E1C78F060070B798416>44 D<70F8F8F8700505788416>46
D<387C7C7C38000000000000000038787C7C3C1C1C3870E0400618799116>59
D<7FFF00FFFF80FFFF80000000000000000000000000000000FFFF80FFFF807FFF00110B7E9116
>61 D<00F80003FC0007FE000F07001C3F80387F8078FF8071C3C071C3C0E381C0E381C0E381C0
E381C0E381C0E381C0E381C071C38071C38078FF00387E001C3C000F03C007FFC003FF0000FC00
12197E9816>64 D<00E00001F00001F00001B00001B00003B80003B80003B800031800071C0007
1C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF
1FE07F1FC013197F9816>I<01F18007FB800FFF801F0F803C0780380380700380700380F00000
E00000E00000E00000E00000E00000E00000E00000F000007003807003803803803C07001F0F00
0FFE0007FC0001F00011197E9816>67 D<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C
01C01C01E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C
07801C0F807FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C0
1C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E0
1C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>I<FFFFE0FFFFE0FFFFE01C00E01C00
E01C00E01C00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00
001C00001C00001C00001C0000FF8000FFC000FF800013197F9816>I<03E30007FF000FFF001E
1F003C0F00380700700700700700F00000E00000E00000E00000E00000E03F80E07FC0E03F80F0
0700700700700700380F003C0F001E1F000FFF0007F70003E70012197E9816>I<7F1FC0FFBFE0
7F1FC01C07001C07001C07001C07001C07001C07001C07001FFF001FFF001FFF001C07001C0700
1C07001C07001C07001C07001C07001C07001C07007F1FC0FFBFE07F1FC013197F9816>I<FFFE
FFFEFFFE0380038003800380038003800380038003800380038003800380038003800380038003
800380FFFEFFFEFFFE0F197D9816>I<FFC000FFC000FFC0001C00001C00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00401C00E01C00E01C00
E01C00E0FFFFE0FFFFE0FFFFE013197F9816>76 D<FC07E0FE0FE0FE0FE03A0B803B1B803B1B80
3B1B803B1B803B1B803BBB8039B38039B38039B38039B38039F38038E38038E380380380380380
380380380380380380FE0FE0FE0FE0FE0FE013197F9816>I<7E1FC0FF3FE07F1FC01D07001D87
001D87001D87001DC7001DC7001CC7001CC7001CE7001CE7001CE7001C67001C67001C77001C77
001C37001C37001C37001C17007F1F00FF9F007F0F0013197F9816>I<1FFC003FFE007FFF0078
0F00F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380F00780F00780780F007FFF003FFE001FFC0011197E9816>I<7FF800FFFE00
7FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF800
1C00001C00001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>I<1FFC
003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E00380E00380E003
80E00380E00380E00380E00380E0E380E1E380F0F780787F007FFF003FFE001FFC00001C00001E
00000E00000F00000700000700111F7E9816>I<7FE000FFF8007FFC001C1E001C0F001C07001C
07001C07001C07001C0F001C1E001FFC001FF8001FFC001C1C001C0E001C0E001C0E001C0E001C
0E201C0E701C0E707F07E0FF87E07F03C014197F9816>I<07E3001FFF003FFF00781F00F00700
E00700E00700E00000F000007800003F80001FF00007FC0000FE00000F00000700000380000380
600380E00380E00700F80F00FFFE00FFFC00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0E0E0
E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00007FC000FFE0007FC0013197F9816>I<7F07F0FF8FF87F
07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C
01C01C01C01C01C01C01C00E03800E038007070007FF0003FE0000F8001519809816>I<FC07E0
FE0FE0FC07E07001C07001C07001C030018038038038038038038038E38039F38039F38039B380
19B30019B30019B30019B30019B30019B3001913001B1B000F1E000F1E000E0E0013197F9816>
87 D<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003F00001F00001E00000E000
01E00001F00003F00003B80007B800071C00071C000E0E000E0E001C07007F1FC0FF1FE07F1FC0
13197F9816>I<7FFF80FFFF80FFFF80E00700E00F00E01E00E01C00003C0000780000700000F0
0001E00001C00003C0000780000700000F00001E03801C03803C0380780380700380FFFF80FFFF
80FFFF8011197E9816>90 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE00
3E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>97
D<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC0FF803F01012
7D9116>99 D<003F00007F00003F0000070000070000070000070003C7000FF7001FFF003C1F00
780F00700700E00700E00700E00700E00700E00700E00700700F00700F003C1F001FFFE00FE7F0
07C7E014197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C
0F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FF
FF00FFFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C0003FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00
380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0
E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00
000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03800E03
800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003C0
03C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001
C001C07FFFFFFF7FFF101A7D9916>I<FFC000FFC000FFC00001C00001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C000FFFF80FFFF80FFFF8011197E9816>108 D<F9C380FFEFC0FFFFE03C78E03C78E03870
E03870E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C781512
809116>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E
03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E00
780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC000FF800
03E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00700E00700E00
700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00000E00000E00
000E00007FC000FFE0007FC000141B809116>I<07C7000FE7001FF7003C1F00700F00700F00E0
0700E00700E00700E00700E00700E00700700F00700F003C3F003FF7001FE70007C70000070000
0700000700000700000700000700003FE0007FF0003FE0141B7E9116>I<FF0FC0FF3FE0FF7FE0
07F04007C000078000078000070000070000070000070000070000070000070000070000FFFC00
FFFC00FFFC0013127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00E
F00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007FFF00FFFF00FF
FF0007000007000007000007000007000007000007000007010007038007038007038007870003
FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E03800E03800E0380
0E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F01512809116>I<7F1F
C0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B8
0003B80001F00001F00000E00013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003B80003
F00001F00000E00001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F91
16>120 D<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C00071C00039C0003
9C0003980001B80001B80000F00000F00000F00000E00000E00000E00001C00079C0007BC0007F
80003F00003C0000131B7F9116>I E /Fe 49 122 df<003FFC0001F07C0003C07C0007C07C00
0F807C000F807C000F807C000F807C000F807C000F807C000F807C00FFFFFC00FFFFFC000F807C
000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F80
7C000F807C000F807C000F807C007FF3FF807FF3FF80191D809C1B>13 D<002000400180038003
0006000E001C001C003C0038003800780078007800F800F000F000F000F000F000F000F000F000
F000F800780078007800380038003C001C001C000E000600030003800180004000200B297C9E13
>40 D<800040003000380018000C000E000700070007800380038003C003C003C003E001E001E0
01E001E001E001E001E001E001E003E003C003C003C0038003800780070007000E000C00180038
003000400080000B297D9E13>I<78FCFCFEFE7A0202040408083040070E7D850D>44
D<FFE0FFE0FFE0FFE00B047F8A10>I<78FCFCFCFC7806067D850D>I<00038000000380000007C0
000007C0000007C000000FE000000FE000001FF000001BF000001BF0000031F8000031F8000061
FC000060FC0000E0FE0000C07E0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006
000FC006000FC00E000FE00C0007E0FFC07FFEFFC07FFE1F1C7E9B24>65
D<FFFFF800FFFFFF000FC01F800FC00FC00FC007C00FC007E00FC007E00FC007E00FC007E00FC0
07E00FC007C00FC00F800FC03F000FFFFE000FC00F800FC007C00FC007E00FC003E00FC003F00F
C003F00FC003F00FC003F00FC003F00FC007E00FC007E00FC01FC0FFFFFF00FFFFFC001C1C7E9B
22>I<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E03E0000E03E0000607E000060
7C000060FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000007C0000
607E0000603E0000603E0000C01F0000C00F80018007C0030003F80E0000FFFC00001FE0001B1C
7D9B22>I<FFFFF800FFFFFF000FC01FC00FC007E00FC001F00FC001F80FC000F80FC000FC0FC0
007C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0F
C0007C0FC0007C0FC0007C0FC000F80FC000F80FC001F00FC007E00FC01FC0FFFFFF00FFFFF800
1F1C7E9B25>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC003800FC003800FC18180
0FC181800FC181800FC180000FC380000FFF80000FFF80000FC380000FC180000FC180000FC180
600FC180600FC000E00FC000C00FC000C00FC001C00FC001C00FC003C00FC00F80FFFFFF80FFFF
FF801B1C7E9B1F>I<FFFFFF00FFFFFF000FC01F000FC007000FC003000FC003800FC003800FC0
01800FC181800FC181800FC180000FC180000FC380000FFF80000FFF80000FC380000FC180000F
C180000FC180000FC180000FC000000FC000000FC000000FC000000FC000000FC00000FFFF0000
FFFF0000191C7E9B1E>I<FFFC3FFFFFFC3FFF0FC003F00FC003F00FC003F00FC003F00FC003F0
0FC003F00FC003F00FC003F00FC003F00FC003F00FFFFFF00FFFFFF00FC003F00FC003F00FC003
F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F0FFFC
3FFFFFFC3FFF201C7E9B25>72 D<FFFFFFFF07E007E007E007E007E007E007E007E007E007E007
E007E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101C7F9B12>I<FF
FC07FFFFFC07FF0FC000E00FC001C00FC003800FC006000FC00C000FC038000FC070000FC0E000
0FC1C0000FC3C0000FC7E0000FCFE0000FFBF0000FF3F8000FE1F8000FC0FC000FC0FE000FC07E
000FC03F000FC01F800FC01FC00FC00FC00FC007E00FC007F0FFFC3FFFFFFC3FFF201C7E9B25>
75 D<FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC0000FC0000FC0000FC0000FC0030FC0030FC0030FC0070FC0070FC0060FC00E0FC01E
0FC07EFFFFFEFFFFFE181C7E9B1D>I<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF000
0DF00DF0000DF00CF80019F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E0061F00C1F
00C1F00C1F00C1F00C1F00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F00C03E601F00C
03E601F00C01FC01F00C01FC01F00C01FC01F00C00F801F00C00F801F0FFC0701FFFFFC0701FFF
281C7E9B2D>I<FFE003FFFFE003FF0FF000300FF800300DFC00300CFE00300C7E00300C3F0030
0C1F80300C1FC0300C0FE0300C07F0300C03F0300C01F8300C01FC300C00FE300C007F300C003F
300C001FB00C001FF00C000FF00C0007F00C0003F00C0001F00C0000F00C0000F0FFC00070FFC0
0030201C7E9B25>I<003FE00001F07C0003C01E000F800F801F0007C01E0003C03E0003E07E00
03F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC
0001F87C0001F07E0003F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E0001F07C00
003FE0001D1C7D9B24>I<FFFFF800FFFFFE000FC03F800FC00F800FC007C00FC007E00FC007E0
0FC007E00FC007E00FC007E00FC007C00FC007C00FC00F800FC03F000FFFFC000FC000000FC000
000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC
0000FFFC00001B1C7E9B21>I<003FE00001F07C0003C01E000F800F801F0007C01F0007C03E00
03E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC
0001F8FC0001F87C0001F07C0001F07E0003F03E0003E03E0703E01F08C7C00F906F8003D03E00
01F87C00003FF8080000180800001C1800001FF800001FF800000FF000000FF0000007E0000003
C01D247D9B24>I<FFFFF00000FFFFFE00000FC03F00000FC00F80000FC007C0000FC007E0000F
C007E0000FC007E0000FC007E0000FC007E0000FC007C0000FC00F80000FC03E00000FFFF00000
0FC07C00000FC03E00000FC03F00000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80
000FC01F80000FC01F81800FC01F81800FC00FC180FFFC07C300FFFC01FE00211C7E9B24>I<07
F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE003FFF003F
FF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03C0EF
FF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C01F80
30C01F8030C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F8000001F
8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800007
FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03FF0FC000300FC000300FC000300FC000300F
C000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC00030
0FC000300FC000300FC000300FC000300FC0003007C0003007C0006003E000E001F001C000FC07
80007FFE00000FF800201C7E9B25>I<FFFC7FFE0FFCFFFC7FFE0FFC0FC007E000C00FC007F000
C00FE003F001C007E003F0018007E007F8018003F007F8030003F007F8030003F80CFC070001F8
0CFC060001F81CFE060001FC187E0E0000FC187E0C0000FC387F0C00007E303F1800007E303F18
00007F601FB800003F601FB000003FE01FF000003FC00FF000001FC00FE000001FC00FE000000F
8007C000000F8007C000000F0003C0000007000380000007000380002E1C7F9B31>87
D<FFFC01FF80FFFC01FF800FE000380007F000300003F800700003F800600001FC00C00000FE01
C00000FE018000007F030000003F870000003F860000001FCE0000000FFC0000000FF800000007
F800000003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
03F000000003F000000003F00000003FFF0000003FFF0000211C7F9B24>89
D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807
C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D<03FC000E0E001C1F003C1F00781F00
780E00F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800
11127E9115>99 D<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F000
01F001F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F078
01F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C01C07801C0
7801E0F801E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F038001FC00
13127F9116>I<007F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F80
00FFF800FFF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
000F80000F80000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C07803C
07803C07803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFFC00FFFE01F
FFF07801F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>I<FF0000FF0000
1F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F31E01F40F01F80F8
1F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7FF
FFE7FF181D7F9C1B>I<1E003F003F003F003F001E00000000000000000000000000FF00FF001F
001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>I<FF
00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F00FFE0FFE00B1D7F9C0E>108 D<FF0FC07E00FF31E18F001F40
F207801F80FC07C01F80FC07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F
00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF8
25127F9128>I<FF0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C
01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F
078001FC0015127F9118>I<FF3F80FFE1E01F80F01F00781F007C1F003C1F003E1F003E1F003E
1F003E1F003E1F003E1F003C1F007C1F00781F80F01FC1E01F3F001F00001F00001F00001F0000
1F00001F0000FFE000FFE000171A7F911B>I<03F0600F0CE01E07E03C03E07C03E07803E0F803
E0F803E0F803E0F803E0F803E0F803E07803E07C03E03C03E01C07E00E0FE003F3E00003E00003
E00003E00003E00003E00003E0001FFC001FFC161A7E9119>I<FE3E00FE47001E8F801E8F801E
8F801F07001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FF
F00011127F9114>I<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01C
E018F830CFC00E127E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F00
1F001F001F001F001F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>I<FF07F8FF07F8
1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F8
0F01F80786FF01F8FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C1
8003E30003E30001F60001F60001FE0000FC0000FC0000780000780000300016127F9119>I<FF
8FF8FEFF8FF8FE1F03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C0
03EC7D8003F83D8001F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<
FFC7FCFFC7FC1F81800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00
070F800607C00C03E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0
C007C18007C18003E30003E30001F70001F60000FE0000FC0000FC000078000078000030000030
00007000706000F86000F8C000F980007300003E0000161A7F9119>I E
/Ff 36 118 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F803F000F801E00
0F800C000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F801F000F801F000F801F
000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F80
1F000F801F000F801F000F801F000F801F000F801F007FF0FFE07FF0FFE01B237FA21F>12
D<FFFCFFFCFFFCFFFC0E047F8C13>45 D<387CFEFEFE7C3807077C8610>I<00180000780001F8
00FFF800FFF80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
0001F8007FFFE07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8
FE03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F00003E00003800
00700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D
9F1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003
E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00
FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E000
03E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E00E07E00C
07E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E00007E00007E000
07E000FFFE00FFFE17207E9F1C>I<000070000000007000000000F800000000F800000000F800
000001FC00000001FC00000003FE00000003FE00000003FE00000006FF000000067F0000000E7F
8000000C3F8000000C3F800000183FC00000181FC00000381FE00000300FE00000300FE0000060
0FF000006007F00000E007F80000FFFFF80000FFFFF800018001FC00018001FC00038001FE0003
0000FE00030000FE000600007F000600007F00FFE00FFFF8FFE00FFFF825227EA12A>65
D<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F8000
07803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000FE00
000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E000001807F
000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F8003800
00FF00F000001FFFC0000003FE000021227DA128>67 D<FFFFFFFCFFFFFFFC07F000FC07F0003C
07F0001C07F0000C07F0000E07F0000E07F0000607F0180607F0180607F0180607F0180007F038
0007F0780007FFF80007FFF80007F0780007F0380007F0180007F0180007F0180307F0180307F0
000307F0000607F0000607F0000607F0000E07F0000E07F0001E07F0003E07F001FCFFFFFFFCFF
FFFFFC20227EA125>69 D<FFFFFFF8FFFFFFF807F001F807F0007807F0003807F0001807F0001C
07F0001C07F0000C07F0000C07F0180C07F0180C07F0180007F0180007F0380007F0780007FFF8
0007FFF80007F0780007F0380007F0180007F0180007F0180007F0180007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F00000FFFFE000FFFFE0001E227EA123>I<FFFF
83FFFEFFFF83FFFE07F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007
F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007FFFFFFC0
07FFFFFFC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001F
C007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F000
1FC0FFFF83FFFEFFFF83FFFE27227EA12C>72 D<FFFFE0FFFFE003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FF
FFE0FFFFE013227FA115>I<FFF000000FFFFFF800001FFF07F800001FE006FC000037E006FC00
0037E006FC000037E0067E000067E0067E000067E0063F0000C7E0063F0000C7E0061F800187E0
061F800187E0060FC00307E0060FC00307E0060FC00307E00607E00607E00607E00607E00603F0
0C07E00603F00C07E00601F81807E00601F81807E00601F81807E00600FC3007E00600FC3007E0
06007E6007E006007E6007E006003FC007E006003FC007E006001F8007E006001F8007E006001F
8007E006000F0007E0FFF00F00FFFFFFF00600FFFF30227EA135>77 D<FFFFFF00FFFFFFE007F0
07F007F001FC07F000FC07F0007E07F0007E07F0007F07F0007F07F0007F07F0007F07F0007F07
F0007E07F0007E07F000FC07F001FC07F007F007FFFFE007FFFF0007F0000007F0000007F00000
07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000
00FFFF8000FFFF800020227EA126>80 D<FFFFFE0000FFFFFFC00007F007F00007F001F80007F0
00FC0007F0007E0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007
F0007E0007F000FC0007F001F80007F007F00007FFFFC00007FFFF800007F00FE00007F007F000
07F003F80007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC
0007F001FC0007F001FC0607F000FE0607F000FF0CFFFF803FF8FFFF800FF027227EA12A>82
D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF0000FFE0
007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00003FC0001FC000
1FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F>I<7FFFFFFF807FFF
FFFF807E03F80F807803F807807003F803806003F80180E003F801C0E003F801C0C003F800C0C0
03F800C0C003F800C0C003F800C00003F800000003F800000003F800000003F800000003F80000
0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800
000003F800000003F800000003F800000003F800000003F800000003F800000003F8000003FFFF
F80003FFFFF80022227EA127>I<FFFF0FFFF01FFEFFFF0FFFF01FFE0FF000FF0000E007F0007F
0000C007F0007F0000C003F8007F80018003F8003F80018003FC003F80038001FC003FC0030001
FC003FC0030000FE007FE0060000FE006FE0060000FF006FE00600007F00C7F00C00007F00C7F0
0C00007F80C7F81C00003F8183F81800003F8183F81800001FC383FC3000001FC301FC3000001F
E301FC3000000FE600FE6000000FE600FE6000000FF600FFE0000007FC007FC0000007FC007FC0
000003FC007F80000003F8003F80000003F8003F80000001F0001F00000001F0001F00000000F0
001E00000000E0000E00000000E0000E000037227FA13A>87 D<07FC001FFF803F07C03F03E03F
01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC
01F07E02F07E0CF81FF87F07E03F18167E951B>97 D<00FF8007FFE00F83F01F03F03E03F07E03
F07C01E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00
600FC0E007FF8000FE0014167E9519>99 D<0001FE000001FE0000003E0000003E0000003E0000
003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0001FC3E0007FFBE00
0F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E
00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC
3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8
FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC07003FFC000FF0015167E
951A>I<003F8000FFC001E3E003C7E007C7E00F87E00F83C00F80000F80000F80000F80000F80
000F8000FFFC00FFFC000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF80013237FA211>I<FF
000000FF0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000
1F0000001F0000001F0000001F07E0001F1FF8001F307C001F403C001F803E001F803E001F003E
001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F00
3E001F003E001F003E001F003E00FFE1FFC0FFE1FFC01A237EA21F>104
D<1C003F007F007F007F003F001C000000000000000000000000000000FF00FF001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310
>I<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B237EA210>
108 D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F801F801F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF07E000FF1FF8001F307C001F40
3C001F803E001F803E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F
003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FFC01A167E95
1F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007E
FC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF0F
E000FF3FF8001FF07C001F803E001F001F001F001F801F001F801F000FC01F000FC01F000FC01F
000FC01F000FC01F000FC01F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC00
1F3FF8001F0FC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
00FFE00000FFE000001A207E951F>I<00FE030007FF87000FC1C7001F006F003F003F007E003F
007E001F007C001F00FC001F00FC001F00FC001F00FC001F00FC001F00FC001F00FC001F007E00
1F007E001F003E003F001F007F000FC1DF0007FF9F0001FC1F0000001F0000001F0000001F0000
001F0000001F0000001F0000001F0000001F000000FFE00000FFE01B207E951E>I<FE1F00FE3F
C01E67E01EC7E01E87E01E87E01F83C01F00001F00001F00001F00001F00001F00001F00001F00
001F00001F00001F00001F00001F0000FFF000FFF00013167E9517>I<0FF3003FFF00781F0060
0700E00300E00300F00300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E0
0380E00380F00700FC0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000
0380000780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F8000
0F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE00
00F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E001F003E001F003E001F003E001F
003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00
1F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F>I E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: a4

%%EndSetup
%%Page: 1 1
0 bop 616 195 a Ff(Prop)r(osal)19 b(for)g(MPI-2)f(Handlers)518
263 y Fe(H.)e(Carter)g(Edw)o(ards)d Fd(carter@ticam.utex)o(as.ed)o(u)337
313 y Fe(T)l(exas)k(Institute)12 b(for)j(Computational)e(and)i(Applied)e
(Mathematics)617 362 y(The)j(Univ)o(ersit)n(y)d(of)i(T)l(exas)i(at)e(Austin)
104 441 y Fc(This)10 b(prop)q(osal)g(for)g(handlers)h(in)f(MPI-2)g(de\014nes)
h(an)f(extension)h(to)g(the)g(existing)f(p)q(ersisten)o(t)i(comm)o(unicati)o
(on)104 490 y(requests.)22 b(The)15 b(extension)g(consists)h(of)d
Fe(only)j(three)d Fc(routines)i(and)f(one)h(new)g(\\t)o(yp)q(e",)f(the)i
(handler.)k(The)104 540 y(prop)q(osed)d(handler)g(seman)o(tics)f(are)h(fully)
f(consisten)o(t)i(with)e(the)h(curren)o(t)h(async)o(hronous)g(comm)o(unicati)
o(on)104 590 y(seman)o(tics.)0 725 y Fb(1)69 b(Whic)n(h)22
b(Section?)0 798 y Fc(Handlers,)12 b(as)g(prop)q(osed)g(here,)h(are)f(simple)
e(y)o(et)h(p)q(o)o(w)o(erful)h(extensions)g(to)f(p)q(ersisten)o(t)j(comm)o
(unicati)o(on)9 b(requests.)19 b(There-)0 848 y(fore,)13 b(it)f(is)h(prop)q
(osed)g(that)g(handlers)h(b)q(e)f(included)g(in)f(the)i Fe(P)o(ersisten)n(t)d
(Comm)o(unication)g(Requests)h Fc(section)h(of)f(the)0 898
y(MPI-2)i(sp)q(eci\014cation.)0 1033 y Fb(2)69 b(Request)22
b(Handlers)0 1124 y Fc(A)17 b(p)q(ersisten)o(t)h(\(async)o(hronous\))g(comm)o
(unicati)o(on)c(request)k(can)f(b)q(e)g(\\self)g(managing")c(through)k(the)g
(use)g(of)f(a)h(handler)0 1173 y(routine.)h(Eac)o(h)13 b(p)q(ersisten)o(t)i
(comm)o(unication)10 b(request)15 b(ma)o(y)c(ha)o(v)o(e)i(a)g(handler)g
(routine)g(attac)o(hed.)18 b(This)c(handler)f(routine)0 1223
y(is)h(in)o(v)o(ok)o(ed)f(as)h(part)g(of)g(the)h(request's)g(transition)f
(from)e(the)j(activ)o(e)f(state)h(to)e(the)i(inactiv)o(e)f(state,)g(i.e.)k
(up)q(on)c(successful)0 1273 y(completion)e(or)i(cancellation.)104
1351 y Fe(MPI)p 203 1351 15 2 v 17 w(POST)p 349 1351 V 16 w
(HANDLER\(request,extra)p 903 1351 V 16 w(state,handler\))157
1400 y Fc(IN)54 b Fe(request)126 b Fc(comm)o(unication)11 b(request)k
(\(handle\))157 1450 y(IN)54 b Fe(extra)p 369 1450 V 17 w(state)e
Fc(extra)15 b(state)g(for)e(handler)157 1500 y(IN)54 b Fe(handler)120
b Fc(request)16 b(handler)0 1576 y(A)o(ttac)o(hes)10 b(the)g(handler)g
Fe(handler)d Fc(to)i(the)h(p)q(ersisten)o(t)h(comm)o(uni)o(cation)6
b(request)11 b Fe(request)p Fc(.)k Fe(MPI)p 1549 1576 V 17
w(POST)p 1695 1576 V 17 w(HANDLER)0 1626 y Fc(ma)o(y)c(only)h(b)q(e)i(called)
e(for)h(a)g(p)q(ersisten)o(t)h(comm)o(unication)c(request)k(whic)o(h)f(is)g
(in)f(the)i(inactiv)o(e)e(state;)i(i.e.)j(after)c(initializa-)0
1676 y(tion,)c(completion,)f(or)h(cancellation)g(but)h(b)q(efore)g(a)f(call)f
(to)h Fe(MPI)p 1021 1676 V 17 w(ST)l(AR)l(T)h Fc(or)f Fe(MPI)p
1347 1676 V 17 w(ST)l(AR)l(T)p 1521 1676 V 17 w(ALL)p Fc(.)f
Fe(MPI)p 1748 1676 V 18 w(POST)p 1895 1676 V 16 w(HANDLER)0
1726 y Fc(ma)o(y)13 b(b)q(e)j(called)e(an)o(y)h(n)o(um)o(b)q(er)f(of)g(times)
g(for)h(a)g(single)f(request,)i(where)h(eac)o(h)e(call)f(replaces)i(the)g
(previous)f Fe(extra)p 1835 1726 V 17 w(state)0 1776 y Fc(and)h
Fe(handler)p Fc(.)21 b(The)c(MPI)f(in)o(v)o(ok)o(es)f(the)i(handler)f(when)g
(the)h(request)g(transitions)f(from)e(its)i(activ)o(e)g(to)g(inactiv)o(e)f
(state)0 1825 y(\(successful)h(completion)c(or)i(cancellation\))f
Fa(if)h Fc(the)g(handlers)g(are)h(unlo)q(c)o(k)o(ed.)62 1875
y(The)g(handler)f(is)f(a)h(routine)g(of)f(the)i(t)o(yp)q(e)104
1948 y Fd(typedef)20 b(int)h(MPI)p 434 1948 14 2 v 15 w(Request)p
603 1948 V 15 w(handler\()f(void)h(*)g(extra)p 1076 1948 V
15 w(state)g(,)g(MPI)p 1331 1948 V 15 w(Request)g(*)g(request)g(,)g(MPI)p
1848 1948 V 15 w(Status)104 1997 y(*)g(status)g(\);)0 2070
y Fc(in)13 b(C,)h(and)f(of)h(the)g(t)o(yp)q(e)104 2142 y Fd(PROCEDURE)20
b(MPI)p 391 2142 V 15 w(REQUEST)p 560 2142 V 14 w(HANDLER\()g(EXTRA)p
880 2142 V 15 w(STATE,)g(REQUEST,)h(STATUS,)f(IERR\))104 2192
y(INTEGER)g(EXTRA)p 391 2192 V 15 w(STATE,)g(REQUEST,)g(STATUS\(MPI)p
974 2192 V 14 w(STATUS)p 1120 2192 V 15 w(SIZE\),)g(IERR)0
2265 y Fc(in)14 b(F)o(OR)m(TRAN.)f(When)h(in)o(v)o(ok)o(ed)f(b)o(y)h(MPI)h
(the)g(request)g(handler)g(is)f(passed)h(the)g Fe(extra)p 1434
2265 15 2 v 17 w(state)e Fc(argumen)o(t)g(supplied)h(to)0 2314
y Fe(MPI)p 99 2314 V 17 w(POST)p 245 2314 V 17 w(HANDLER)g
Fc(and)f(a)h(handle)g(to)g(the)g(asso)q(ciated)h(request.)62
2364 y(The)d(request)h(ob)r(ject)f(is)f(still)g(accessible)i(to)e(the)h(user)
g(after)g(the)g(call)e(to)i Fe(MPI)p 1301 2364 V 17 w(POST)p
1447 2364 V 16 w(HANDLER)g Fc(is)f(completed.)0 2414 y(Once)17
b(a)f(p)q(ersisten)o(t)i(comm)o(unication)13 b(request)18 b(is)e(activ)n
(ated)g(b)o(y)g(a)g(call)g(to)g Fe(MPI)p 1329 2414 V 17 w(ST)l(AR)l(T)g
Fc(or)g Fe(MPI)p 1668 2414 V 17 w(ST)l(AR)l(T)p 1842 2414 V
17 w(ALL)0 2464 y Fc(the)d(handler)g(is)f(activ)o(e)h(and)f(ma)o(y)e(b)q(e)j
(in)o(v)o(ok)o(ed)f(at)g(an)o(y)g(time.)17 b(In)o(v)o(o)q(cation)11
b(of)h(all)f(handlers)i(can)g(b)q(e)g(lo)q(c)o(k)o(ed)g(and)f(unlo)q(c)o(k)o
(ed)0 2514 y(with)17 b(calls)f(to)h Fe(MPI)p 346 2514 V 17
w(HANDLER)p 606 2514 V 18 w(LOCK)g Fc(and)g Fe(MPI)p 957 2514
V 17 w(HANDLER)p 1217 2514 V 18 w(UNLOCK)p Fc(.)g(When)g(handlers)h(are)f(lo)
q(c)o(k)o(ed)0 2563 y(all)c(asso)q(ciated)h(p)q(ersisten)o(t)i(comm)o
(unication)10 b(requests)16 b(op)q(erate)f(as)f(though)g(the)g(handlers)h
(had)e(not)h(b)q(een)h(p)q(osted.)0 2677 y Ff(2.1)56 b(F)-5
b(reed)18 b(Requests)0 2754 y Fc(An)9 b(activ)o(e)h(p)q(ersisten)o(t)h(comm)o
(unicatio)o(n)c(request)j(ma)o(y)e(b)q(e)i(mark)o(ed)e(for)h(deallo)q(cation)
f(via)g(a)h(call)g(to)g Fe(MPI)p 1665 2754 V 17 w(REQUEST)p
1913 2754 V 17 w(FREE)p Fc(.)0 2804 y(When)15 b(a)g(handler)g(is)g(called)g
(for)f(suc)o(h)i(a)f(\\freed)g(request")i(an)d Fe(MPI)p 1114
2804 V 18 w(REQUEST)p 1363 2804 V 17 w(NULL)g Fc(is)h(input)g(to)g(the)g
(handler.)0 2854 y(Th)o(us)f(the)h(request)g(is)f(deallo)q(cated)g(prior)g
(to)f(a)h(call)f(to)h(the)g(handler.)p 0 2928 1950 1 v 0 2978
a(TICAM)g(UT-Austin)611 b(1)658 b(F)m(ebruary)14 b(9,)f(1996)p
eop
%%Page: 2 2
1 bop 0 195 a Ff(2.2)56 b(MPI)p 243 195 17 2 v 20 w(W)-6 b(AIT)19
b(and)g(MPI)p 656 195 V 20 w(TEST)0 272 y Fc(A)12 b(user)h(ma)o(y)d(call)h
Fe(MPI)p 390 272 15 2 v 17 w(W)-5 b(AIT)p Fc(,)12 b Fe(MPI)p
658 272 V 17 w(TEST)p Fc(,)g(or)g(related)g(w)o(ait)f(and)h(test)h(routines)g
(for)e(a)h(request)h(with)f(an)f(attac)o(hed)0 322 y(handler.)33
b(The)19 b(seman)o(tics)f(of)g(a)h(handler)g(is)f(that)h(it)f(is)h(in)o(v)o
(ok)o(ed)f(during)g(the)i(request's)g(transition)e(from)f(activ)o(e)i(to)0
371 y(inactiv)o(e,)13 b(th)o(us)h(the)h(handler)f(is)g(in)o(v)o(ok)o(ed)f(b)q
(efore)h(the)h(completion)d(of)h(a)h(w)o(ait)f(or)h(test)h(routine.)62
421 y(A)d(user's)i(call)d(to)h(a)g(w)o(ait)f(or)h(test)h(routine)f(on)g(an)g
(inactiv)o(e)g(request)h(will)e(p)q(erform)g(as)h(if)g(there)h(w)o(ere)g(no)f
(handler.)18 b(The)0 471 y(handler)c(cannot)g(b)q(e)h(in)o(v)o(ok)o(ed)e
(during)g(suc)o(h)i(a)e(call.)62 521 y(A)g(user's)h(call)e(to)g(w)o(ait)g(or)
h(test)g(routine)g(on)g(an)f(activ)o(e)h(request)h(returns)g(the)g
Fe(status)d Fc(and)h Fe(\015ag)h Fc(describing)g(the)g(state)0
571 y(of)f(the)h(request)i Fa(as)f(it)f(was)h(input)p Fc(.)k(The)13
b(seman)o(tics)f(of)g(a)h(call)f(to)g(a)h(w)o(ait)f(or)g(test)i(routine)f(in)
f(whic)o(h)h(a)f(handler)h(is)g(in)o(v)o(ok)o(ed)0 620 y(is)h(consisten)o(t)h
(with)e(calling)g(the)h(immediately)d(after)j(the)g(w)o(ait)f(or)h(test,)h
(as)f(sho)o(wn)g(here.)129 701 y Fd(MPI)p 198 701 14 2 v 15
w(WAIT\()21 b(request)f(,)h(status)g(\))523 b Fa(without)14
b(a)h(hand)r(ler)129 751 y Fd(handler)p 286 751 V 14 w(status)20
b(=)i(status)631 b Fa(status)15 b(is)f(not)i(shar)n(e)n(d)129
800 y Fd(handler\()k(extra)p 438 800 V 14 w(state)h(,)h(request)e(,)i
(handler)p 999 800 V 14 w(status)f(\))0 881 y Fc(Or)14 b(for)g(a)g(call)f(to)
g(a)h(test)h(routine:)129 954 y Fd(MPI)p 198 954 V 15 w(TEST\()21
b(request)f(,)h(flag)g(,)h(status)f(\))370 b Fa(without)14
b(a)h(hand)r(ler)129 1004 y Fd(IF)21 b(\()h(flag)f(=)g(true)g(\))h(THEN)129
1053 y(handler)p 286 1053 V 14 w(status)e(=)i(status)631 b
Fa(status)15 b(is)f(not)i(shar)n(e)n(d)129 1103 y Fd(handler\()k(extra)p
438 1103 V 14 w(state)h(,)h(request)e(,)i(handler)p 999 1103
V 14 w(status)f(\))129 1153 y(END)g(IF)0 1234 y Fc(Th)o(us)11
b(the)g Fe(status)d Fc(returned)13 b(to)d(the)h(user)g(b)o(y)f(the)h(w)o(ait)
f(or)g(test)i(routine)e(re\015ect)i(with)f(status)g(of)e(the)i(request)h
(immediately)0 1284 y(b)q(efore)h(in)o(v)o(o)q(cation)e(of)h(the)h(handler.)
18 b(If)12 b(the)h(input)f Fe(request)f Fc(is)h(mo)q(di\014ed)f(b)o(y)i(the)g
(handler)f(it)g(will)f(b)q(e)i(inconsisten)o(t)g(with)0 1334
y(the)h(output)h Fe(status)d Fc(and)i Fe(\015ag)p Fc(.)0 1450
y Ff(2.3)56 b(Handler)18 b(Mo)r(di\014cations)g(to)g(the)g(Request)0
1527 y Fc(A)9 b(handler)h(ma)o(y)d(mo)q(dify)g(the)j(asso)q(ciated)g(inactiv)
o(e)f(p)q(ersisten)o(t)i(comm)o(unicatio)o(n)c(request)k(via)d
Fe(MPI)p 1588 1527 15 2 v 17 w(POST)p 1734 1527 V 17 w(HANDLER)p
Fc(,)0 1576 y Fe(MPI)p 99 1576 V 17 w(ST)l(AR)l(T)p Fc(,)13
b Fe(MPI)p 394 1576 V 18 w(REQUEST)p 643 1576 V 17 w(FREE)p
Fc(.)62 1626 y(A)19 b(handler)f(ma)o(y)f(call)g Fe(MPI)p 540
1626 V 17 w(POST)p 686 1626 V 17 w(HANDLER)h Fc(for)g(the)h(asso)q(ciated)g
(request.)33 b(Suc)o(h)19 b(a)f(call)f(\\ev)o(olv)o(es")h(the)0
1676 y(p)q(ersisten)o(t)i(comm)o(unicatio)o(n)c(request)j(with)f(a)g(new)h
Fe(extra)p 976 1676 V 16 w(state)e Fc(or)h(new)h Fe(handler)d
Fc(for)i(subsequen)o(t)h(deactiv)n(ations)0 1726 y(\(activ)o(e-to-inactiv)o
(e)c(transition\))g(of)g(the)h(request.)25 b(A)16 b(handler)g(ma)o(y)d(c)o
(hange)j(the)g Fe(extra)p 1452 1726 V 17 w(state)f Fc(to)g(supp)q(ort)h
(recursiv)o(e)0 1776 y(in)o(v)o(o)q(cations.)h(A)d(handler)g(ma)o(y)e
(replace)j(itself)e(within)h(the)g(request)i(based)e(up)q(on)g(con)o(ten)o
(ts)h(of)e(a)h(receiv)o(ed)h(message.)62 1825 y(A)e(handler)g(ma)o(y)f(call)g
Fe(MPI)p 519 1825 V 17 w(ST)l(AR)l(T)h Fc(on)g(the)g(asso)q(ciated)h
(request.)19 b(Suc)o(h)14 b(a)e(call)h(activ)n(ates)g(the)g(request;)i
(resulting)0 1875 y(in)h(a)g(p)q(ossible)h(re-en)o(trance)i(of)d(the)h
(handler)g(routine.)26 b(It)17 b(is)f(the)h(resp)q(onsibilit)o(y)f(of)g(the)i
(handler)e(routine)h(to)f(accoun)o(t)0 1925 y(for)h(this)g(p)q(ossibilit)o(y)
m(.)26 b(By)18 b(calling)d Fe(MPI)p 673 1925 V 17 w(ST)l(AR)l(T)i
Fc(from)f(within)g(the)i(handler)f(a)g(p)q(ersisten)o(t)i(request)g(b)q
(ecomes)e(\\self)0 1975 y(managing".)104 2058 y Fa(A)n(dvic)n(e)f(to)g
(users.)21 b Fc(A)16 b(handler)f(should)g(either)h(1\))f(mak)o(e)e(the)j
(call)e(to)h Fe(MPI)p 1328 2058 V 18 w(ST)l(AR)l(T)g Fc(the)g(last)g
(statemen)o(t)104 2108 y(\(immedia)o(tely)e(b)q(efore)j(the)g(return\))g(or)g
(2\))f(call)f Fe(MPI)p 982 2108 V 18 w(POST)p 1129 2108 V 16
w(HANDLER)i Fc(with)f(a)g(new)g Fe(extra)p 1731 2108 V 17 w(state)104
2158 y Fc(b)q(efore)f(calling)f Fe(MPI)p 459 2158 V 17 w(ST)l(AR)l(T)p
Fc(.)62 2241 y(A)i(handler)g(ma)o(y)e(call)h Fe(MPI)p 526 2241
V 17 w(REQUEST)p 774 2241 V 17 w(FREE)i Fc(on)e(the)i(asso)q(ciated)f
(request.)23 b(If)14 b(the)h(request)i(is)d(still)g(inactiv)o(e)0
2290 y(\()p Fe(MPI)p 115 2290 V 17 w(ST)l(AR)l(T)h Fc(w)o(as)g(not)g(called)f
(b)o(y)h(the)g(handler\))g(the)h(request)g(is)f(immedia)o(tely)d(freed.)22
b(F)m(reeing)15 b(an)f(activ)o(e)h(request)0 2340 y(is)e(a)f(bad)h(idea)g
(and)g(should)f(b)q(e)i(an)f(error.)18 b(Ho)o(w)o(ev)o(er,)13
b(for)g(compatibilit)o(y)d(with)i(MPI-1,)h(a)f(handler)i(whic)o(h)e(is)h(in)o
(v)o(ok)o(ed)f(for)0 2390 y(a)i(freed)g(request)i(will)c(b)q(e)j(giv)o(en)e
(a)h(n)o(ull)f(request.)0 2506 y Ff(2.4)56 b(Handler)18 b(Comm)n(unications)0
2583 y Fc(A)f(handler)g(ma)o(y)e(p)q(erform)h(other)i(MPI)f(comm)o(unicati)o
(ons)d(during)j(its)g(in)o(v)o(o)q(cation.)26 b(Sp)q(ecial)17
b(care)g(m)o(ust)f(b)q(e)i(taking)e(if)0 2633 y(these)i(comm)o(unications)c
(are)j(sync)o(hronous)h(or)e(if)g(the)h(handler)g(w)o(aits)g(for)f(the)h
(comm)o(unications)d(to)j(complete.)26 b(Suc)o(h)0 2682 y(comm)o(unications)
11 b(can)j(easily)f(lead)h(to)g(deadlo)q(c)o(ks.)p 0 2928 1950
1 v 0 2978 a(TICAM)g(UT-Austin)611 b(2)658 b(F)m(ebruary)14
b(9,)f(1996)p eop
%%Page: 3 3
2 bop 0 195 a Fb(3)69 b(Lo)r(c)n(king)23 b(and)h(Unlo)r(c)n(king)e(Handlers)0
286 y Fc(When)12 b(handlers)g(are)f(lo)q(c)o(k)o(ed)h(all)e(p)q(ersisten)o(t)
j(comm)o(unication)8 b(requests)14 b(op)q(erate)e(as)f(if)g(the)h(p)q(osted)g
(handlers)g(did)f(not)h(ex-)0 336 y(ist.)17 b(P)o(ersisten)o(t)11
b(comm)o(unicatio)o(n)c(requests)k(completed)e(via)g(a)g(w)o(ait)g(or)g(test)
i(routine,)f(or)f(canceled)i(via)e Fe(MPI)p 1722 336 15 2 v
17 w(CANCEL)p Fc(,)0 386 y(while)k(handlers)i(are)f(lo)q(c)o(k)o(ed)g(will)e
(b)o(ypass)j(the)f(in)o(v)o(o)q(cation)f(of)g(their)h(handlers.)62
435 y(P)o(ersisten)o(t)j(comm)o(unicatio)o(n)12 b(request)17
b(whic)o(h)d(could)h(ha)o(v)o(e)f(b)q(een)i(completed)f(while)f(in)g(the)i
(lo)q(c)o(k)o(ed)f(state,)g(but)g(w)o(ere)0 485 y(not)e(explicitly)g
(completed)g(b)o(y)g(a)g(user's)i(call)d(to)i(a)f(w)o(ait)g(or)g(test)i
(function,)d(are)i(queued)h(for)e(completion)f(up)q(on)h(a)g(call)g(to)0
535 y Fe(MPI)p 99 535 V 17 w(HANDLER)p 359 535 V 18 w(UNLOCK)p
Fc(.)62 585 y(The)i(seman)o(tics)f(of)g(lo)q(c)o(king)f(and)i(unlo)q(c)o
(king)e(handlers)i(simpli\014es)e(to:)19 b(Lo)q(c)o(king)14
b(handlers)h(temp)q(orarily)e(\\remo)o(v)o(es")0 635 y(the)h(handlers)h(from)
d(their)i(requests.)20 b(Unlo)q(c)o(king)13 b(handlers)i(\\replaces)g(remo)o
(v)o(ed")d(handlers.)0 772 y Fb(4)69 b(Multiple)20 b(Request)i(Handlers)0
863 y Fc(The)10 b(presence)h(of)e(m)o(ultiple)e(request)k(handlers)f(\()p
Fe(MPI)p 860 863 V 17 w(POST)p 1006 863 V 17 w(ANY)p 1132 863
V 17 w(HANDLER)p Fc(,)f Fe(MPI)p 1509 863 V 18 w(POST)p 1656
863 V 16 w(ALL)p 1766 863 V 17 w(HANDLER)p Fc(,)0 913 y(and)i
Fe(MPI)p 177 913 V 17 w(POST)p 323 913 V 17 w(SOME)p 479 913
V 17 w(HANDLER)p Fc(\),)g(w)o(ould)f(unnecessarily)i(complicate)e(the)i
(simple)d(handler)i(seman)o(tics)g(pro-)0 963 y(p)q(osed)16
b(here.)23 b(As)15 b(suc)o(h)h(these)g(routines)g(are)g(not)f(included)g(in)f
(this)i(prop)q(osal.)21 b Fe(Ho)o(w)o(ev)o(er)p Fc(,)14 b(the)i(functionalit)
o(y)d(of)i(these)0 1012 y(routines)f(can)h(b)q(e)f(easily)f(and)h(more)f
(robustly)h(implemen)o(ted)e(using)h(the)i(prop)q(osed)f(handler)h(primitiv)o
(es.)62 1062 y(The)10 b(three)h(routines,)f(\()p Fe(MPI)p 527
1062 V 17 w(POST)p 673 1062 V 17 w(ANY)p 799 1062 V 17 w(HANDLER)p
Fc(,)f Fe(MPI)p 1176 1062 V 18 w(POST)p 1323 1062 V 16 w(ALL)p
1433 1062 V 17 w(HANDLER)p Fc(,)g(and)g Fe(MPI)p 1886 1062
V 17 w(POST)p 2032 1062 V 17 w(SOME)p 2188 1062 V 17 w(HANDLER)p
Fc(\),)0 1112 y(de\014ne)18 b(a)f(set)g(of)g(related)g(requests.)29
b(A)17 b(handler)g(attac)o(hed)h(to)f(this)g(set)h(of)e(request)i(is)f(to)g
(b)q(e)h(in)o(v)o(ok)o(ed)e(up)q(on)h(the)g(\014rst)0 1162
y(\(ANY\),)d(last)g(\(ALL\),)f(or)h(an)o(y)g(\(SOME\))g(completion)f(of)g
(the)h(requests.)62 1212 y(This)19 b(functionalit)o(y)e(is)h(easily)g
(obtained)g(b)o(y)h(ha)o(ving)e(the)i(set)h(of)e(requests)i(share)g(data)e
(either)h(through)g(the)g Fe(ex-)0 1261 y(tra)p 65 1261 V 17
w(state)12 b Fc(\(preferred\))17 b(or)c(in)h(a)f(global)g(v)n(ariable)f(of)i
(handler)g(p)q(osted)h(to)e(all)g(requests)j(in)d(the)i(set)g
(\(undesirable\).)0 1311 y(ANY:)21 b(The)12 b(shared)g(data)g(con)o(tains)f
(a)h(\\\014rst)g(called")f(\015ag)g(so)h(the)g(\014rst)g(handler)g(in)o(v)o
(o)q(cation)f(sets)i(the)f(\015ag)f(and)g(p)q(erforms)104 1361
y(the)j(shared)h(op)q(eration.)0 1411 y(ALL:)20 b(The)d(shared)h(data)e(con)o
(tains)h(a)f(coun)o(ter)h(whic)o(h)g(eac)o(h)g(handler)g(incremen)o(ts)g(and)
f(the)h(last)f(handler)h(in)o(v)o(o)q(cation)104 1461 y(p)q(erforms)c(the)i
(shared)f(op)q(eration.)0 1510 y(SOME:)21 b(The)14 b(shared)h(op)q(erations)f
(is)g(p)q(erformed)g(during)f(all)g(handler)h(in)o(v)o(o)q(cations)f
(\(normal)f(case\).)0 1648 y Fb(5)69 b(Lo)r(ose)24 b(Sync)n(hronization)0
1739 y Fc(Application)c(with)h(async)o(hronous)g(comm)o(unications)d(often)j
(ha)o(v)o(e)g(sync)o(hronization)g(p)q(oin)o(ts)g(where)h(p)q(ending)f(asyn-)
0 1788 y(c)o(hronous)e(op)q(erations)g(m)o(ust)e(complete)h(and)h(the)g(pro)q
(cesses)i(m)o(ust)c(sync)o(hronize.)33 b(T)m(o)18 b(supp)q(ort)h(this)g(lo)q
(ose)f(sync)o(hro-)0 1838 y(nization)e(MPI)h(m)o(ust)f(either)h(1\))g
(complete)f(async)o(hronous)h(comm)o(unications,)d(including)i(handler)h(in)o
(v)o(o)q(cations,)f(from)0 1888 y(within)c(the)h Fe(MPI)p 297
1888 V 18 w(BARRIER)f Fc(or)h(2\))g(de\014ne)h(a)e(new)h(form)e(of)i(the)g
(barrier)g(whic)o(h)g(allo)o(ws)f(async)o(hronous)h(comm)o(unica-)0
1938 y(tions)h(to)f(complete)h(during)f(the)i(sync)o(hronization.)62
1988 y(In)c(order)g(to)f(preserv)o(e)i(the)f(blo)q(c)o(king)e(seman)o(tics)h
(of)g Fe(MPI)p 978 1988 V 17 w(BARRIER)g Fc(a)g(seman)o(tic)g(v)n(arian)o(t)f
(of)h Fe(MPI)p 1709 1988 V 17 w(BARRIER)0 2038 y Fc(is)k(prop)q(osed.)104
2129 y Fe(MPI)p 203 2129 V 17 w(BARRIER)p 447 2129 V 17 w(LOOSE\()h(comm)g
(\))157 2179 y Fc(IN)54 b(comm)d(comm)o(unicator)11 b(\(handle\))62
2270 y Fe(MPI)p 161 2270 V 18 w(BARRIER)p 406 2270 V 17 w(LOOSE)i
Fc(returns)j(an)e(an)o(y)g(pro)q(cess)i(only)e(after)h(all)e(group)h(mem)o(b)
q(ers)f(ha)o(v)o(e)h(en)o(tered)i(the)f(call;)0 2320 y(ho)o(w)o(ev)o(er,)20
b(the)f(calling)e(pro)q(cess)k(do)q(es)e(not)f(blo)q(c)o(k.)32
b(The)19 b(calling)f(pro)q(cess)i(con)o(tin)o(ues)f(to)g(serv)o(e)h(activ)o
(e)e(async)o(hronous)0 2370 y(comm)o(unication)10 b(requests)15
b(while)e(w)o(aiting)f(for)h(the)h(remaining)e(group)h(mem)o(b)q(er)f(to)h
(en)o(ter)i(the)f(call.)j(Servicing)c(requests)0 2419 y(includes)h(in)o(v)o
(o)q(cation)f(of)g(handlers)i(whic)o(h)e(ma)o(y)f(create)k(additional)c
(async)o(hronous)i(comm)o(unication)d(requests.)p 0 2928 1950
1 v 0 2978 a(TICAM)j(UT-Austin)611 b(3)658 b(F)m(ebruary)14
b(9,)f(1996)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF