%!PS-Adobe-2.0 %%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software %%Title: ports0.dvi %%CreationDate: Fri Jan 27 13:53:14 1995 %%Pages: 15 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips -D 300 ports0 -o %DVIPSParameters: dpi=300, comments removed %DVIPSSource: TeX output 1995.01.27:1352 %%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 /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{ statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{ pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get} B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D }B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail} B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{ 3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{ 3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (/tmp_mnt/Net/antireo/antireo8/compose/nexus/src/nexus/ports0/docs/spec/ports0.dvi) @start /Fa 15 122 df<00FF000FFC000F8001E0000F800180000FC000800013C00100 0013C001000011E001000011E001000021E002000020F002000020F002000020F0020000 407804000040780400004078040000403C040000803C080000803E080000801E08000080 1E080001001F100001000F100001000F10000100079000020007A000020007A000020003 E000020003E000040003C000040001C000040001C0000C0001C0001E00008000FFC00080 0026227DA124>78 D<00FFFFC0000F0070000F003C000F001C001E000E001E000E001E00 0F001E000F003C001E003C001E003C001E003C003C0078003800780070007801E0007807 8000FFFC0000F00E0000F0070000F0038001E003C001E003C001E003C001E003C003C007 8003C0078003C0078003C0078007800F0007800F0107800F01078007020F800702FFF803 8C000000F020237DA124>82 D<00F8C00185C00705C00E03800E03801C03803C03803807 00780700780700780700F00E00F00E00F00E00F00E10F01C20701C20703C20305C40308C 400F078014157B9419>97 D<03C03F8003800380038007000700070007000E000E000E00 0E001C001CF81D0C1E0E3C0638073807380F700F700F700F700FE01EE01EE01EE03CE038 E038607060E031C01F0010237BA216>I<007E0001C1000301800703800E07801C07803C 0000380000780000780000780000F00000F00000F00000F00000F0010070010070020030 0C001830000FC00011157B9416>I<00F803840E021C023C0238027804F018FFE0F000F0 00E000E000E000E000E002E0026004701830600F800F157A9416>101 D<001F180030B800E0B801C07001C0700380700780700700E00F00E00F00E00F00E01E01 C01E01C01E01C01E01C01E03800E03800E0780060B8006170001E700000700000700000E 00000E00000E00701C00F01800F0300060E0003F8000151F7E9416>103 D<00C001E001C001C0000000000000000000000000000000001C00230043004300870087 0087000E000E001C001C001C00380038003840708070807080710032001C000B217BA00F >105 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C0000380000380 000380000380000700000701E0070210070C700E10F00E10F00E20600E40001D80001E00 001FC0001C7000383800383800381C00381C20703840703840703840701880E01880600F 0014237DA216>107 D<01E01FC001C001C001C003800380038003800700070007000700 0E000E000E000E001C001C001C001C0038003800380038007000700070007100E200E200 E200E200640038000B237CA20C>I<1C0F002631C04740C08780E08780E08700E08700E0 0E01C00E01C00E01C00E01C01C03801C03801C03801C0704380708380E08380E10380610 7006203003C016157B941B>110 D<007E0001C3000381800701C00E01C01C01E03C01E0 3801E07801E07801E07801E0F003C0F003C0F00380F00780700700700E00700C00301800 18700007C00013157B9419>I<1C1F002620804741C08783C08703C08701808700000E00 000E00000E00000E00001C00001C00001C00001C00003800003800003800003800007000 0030000012157B9415>114 D<00C001C001C001C001C003800380038003800700FFF807 0007000E000E000E000E001C001C001C001C003800380038003810702070207040708031 001E000D1F7C9E10>116 D<1E00302300704380704380E08380E08700E08700E00701C0 0E01C00E01C00E01C01C03801C03801C03801C03801C07001C07001C07001C0F000C3E00 03CE00000E00000E00001C00601C00F03800F03000E0600080C0004380003E0000141F7B 9418>121 D E /Fb 1 16 df<03F0000FFC001FFE003FFF007FFF807FFF80FFFFC0FFFF C0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003F0 0012147D9519>15 D E /Fc 21 120 df<000F001F003E007C00F801F003E007C00F800F 001E001E003C003C003C00780078007800F000F000F000F000F000F000F000F000F000F0 00F0007800780078003C003C003C001E001E000F000F8007C003E001F000F8007C003F00 1F000F102F77A91F>40 D<7000F8007C003E001F000F8007C003E001F000F00078007800 3C003C003C001E001E001E000F000F000F000F000F000F000F000F000F000F000F001E00 1E001E003C003C003C0078007800F001F003E007C00F801F003E007C00F8007000102F7B A91F>I<007E0001FF8003FFC007FFE00FC3F01F00F81E00783E007C3C003C7C003E7800 1E78001E78001EF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000 0FF8001F78001E78001E78001E7C003E3C003C3E007C1F00F81F81F80FC3F007FFE003FF C001FF80007E0018257DA41F>48 D<07FC00001FFF00003FFFC0003FFFE0003E03F0001C 01F0000000F800000078000000780000007800007FF80003FFF8000FFFF8003FE078007E 00780078007800F0007800F0007800F0007800F00078007800F8007E03F8003FFFFFE03F FFFFE00FFE3FE003F00FE01B1A7D991F>97 D<007FC001FFF007FFF80FFFF81F80F83E00 703C0000780000780000F80000F00000F00000F00000F00000F00000F00000F800007800 007C00783E00783F00F81FC1F00FFFE007FFE001FF80007E00151A7B991F>99 D<0007FC000007FC000007FC000007FC0000003C0000003C0000003C0000003C0000003C 0000003C0000003C0000FC3C0003FF3C0007FFBC000FFFFC001F81FC003E00FC003C007C 007C003C0078003C00F8003C00F0003C00F0003C00F0003C00F0003C00F0003C00F0003C 00F8003C0078007C0078007C003C00FC003E01FC001F83FC001FFFFFE007FFBFE003FE3F E000F83FE01B257EA41F>I<007F0001FFC007FFE00FFFF01F81F83F00783C003C7C003C 78001E78001EFFFFFEFFFFFEFFFFFEFFFFFEF00000F000007800007800007C001E3E001E 1F803E1FE07C0FFFF803FFF001FFE0003F80171A7D991F>I<0001F80007FC000FFE001F FE003E3E007C1C0078000078000078000078000078007FFFFCFFFFFCFFFFFCFFFFFC0078 000078000078000078000078000078000078000078000078000078000078000078000078 000078000078000078000078000078007FFFF87FFFF87FFFF87FFFF817257EA41F>I104 D<00300000780000FC0000FC00007800003000000000000000 0000000000000000000000007FFC007FFC007FFC007FFC00003C00003C00003C00003C00 003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00 003C00003C007FFFFCFFFFFEFFFFFE7FFFFC17267CA51F>I 107 DIII<00FC0003FF0007FF801FFFE01F87E03E01 F07C00F8780078780078F0003CF0003CF0003CF0003CF0003CF0003CF0003CF8007C7800 787C00F87C00F83E01F01F87E01FFFE007FF8003FF0000FC00161A7C991F>II114 D<03FC700FFFF03FFFF07FFFF07C03F0F8 01F0F000F0F000F0F000F07C00007FE0001FFF0007FFC000FFE00003F00000F870003CF0 003CF0003CF8003CFC007CFF01F8FFFFF0FFFFF0E7FFC0E1FE00161A7C991F>I<007000 0000F0000000F0000000F0000000F0000000F0000000F000007FFFFE00FFFFFE00FFFFFE 00FFFFFE0000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000 0000F0000000F0000000F0000000F0000000F0078000F0078000F0078000F0078000F80F 00007C1F00007FFE00003FFC00001FF8000007E00019217FA01F>II119 D E /Fd 36 123 df<0001FF0000001FFFC000007F80F00000FC00F80001F801F80003F8 03FC0007F003FC0007F003FC0007F003FC0007F001F80007F000F00007F000000007F000 000007F000000007F0000000FFFFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007F001FC 0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC00 07F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007 F001FC0007F001FC0007F001FC0007F001FC0007F001FC007FFF1FFFC07FFF1FFFC07FFF 1FFFC0222A7FA926>12 D45 D<1C003E007F00FF80FF80FF807F003E001C0009097B8813>I<003F800001FFF00007E0 FC000FC07E001F803F001F803F003F001F803F001F807F001FC07F001FC07F001FC07F00 1FC0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF00 1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE07F001FC07F001FC07F00 1FC07F001FC03F001F803F001F801F803F001F803F000FC07E0007E0FC0001FFF000003F 80001B277DA622>48 D<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>I<00FF800003FFF0000FFF FC001F03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E00 1FE03C003FE000003FE000003FC000003FC000007F8000007F000000FE000000FC000001 F8000003F0000003E00000078000000F0000001E0000003C00E0007000E000E000E001C0 01C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFF FF801B277DA622>I<007F800003FFF00007FFFC000F81FE001F00FF003F80FF003F807F 803F807F803F807F801F807F800F007F800000FF000000FF000000FE000001FC000001F8 000007F00000FFC00000FFF0000001FC0000007E0000007F0000007F8000003FC000003F C000003FE000003FE03C003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007FC07E007F 807C007F003F01FE001FFFFC0007FFF00000FF80001B277DA622>I<00000E0000001E00 00003E0000007E000000FE000000FE000001FE000003FE0000077E00000E7E00000E7E00 001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E007E00 0E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE00 0000FE000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8 007FFFF81D277EA622>I<0C0003000F803F000FFFFE000FFFFC000FFFF8000FFFF0000F FFE0000FFFC0000FFE00000E0000000E0000000E0000000E0000000E0000000E0000000E 7FC0000FFFF8000F80FC000E003E000C003F0000001F8000001FC000001FC000001FE000 001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078 003F803C007F001F01FE000FFFF80003FFF00000FF80001B277DA622>I<0007F000003F FC0000FFFE0001FC0F0003F01F8007E03F800FC03F801FC03F801F803F803F801F003F80 00007F0000007F0000007F000000FF000000FF0FC000FF3FF800FF707C00FFC03E00FFC0 3F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0FF001FE07F001FE07F001FE07F00 1FE07F001FE03F001FE03F001FC01F801FC01F803F800FC03F0007E07E0003FFFC0000FF F000003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFF E07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000E000E0 000000E0000001C000000380000007800000078000000F0000000F0000001F0000001F00 00003F0000003E0000003E0000007E0000007E0000007E0000007E000000FE000000FE00 0000FE000000FE000000FE000000FE000000FE000000FE0000007C0000003800001C297C A822>I<003FC00001FFF00003FFFC0007C07E000F003F001E001F001E000F803E000F80 3E000F803F000F803F000F803FC00F003FF01F001FFC1E001FFE3C000FFFF80007FFE000 03FFF80001FFFC0001FFFE0007FFFF000F0FFF801E03FFC03C01FFC07C007FE078001FE0 F80007E0F80007E0F80003E0F80003E0F80003E0F80003C07C0003C07C0007803F000F00 1FC03E000FFFFC0003FFF800007FC0001B277DA622>I<007F800001FFF00007FFF8000F E0FC001F807E003F803F007F003F007F001F80FF001F80FF001FC0FF001FC0FF001FC0FF 001FE0FF001FE0FF001FE0FF001FE07F001FE07F003FE03F003FE01F807FE00F807FE007 C1DFE003FF9FE0007E1FE000001FE000001FC000001FC000001FC000003F801F003F803F 803F003F803F003F807E003F807C001F01F8001E03F0000FFFE00007FF800001FE00001B 277DA622>I<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF80 01FE00007F8003FC00003F8007F000001F800FF000000F801FE0000007801FE000000780 3FC0000007803FC0000003807FC0000003807F80000003807F8000000000FF8000000000 FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 FF8000000000FF80000000007F80000000007F80000000007FC0000003803FC000000380 3FC0000003801FE0000003801FE0000007000FF00000070007F000000E0003FC00001E00 01FE00003C0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF80000 29297CA832>67 DII77 D<007F806003FFF0E007FFF9E00F807FE01F001F E03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF0000 00FFC000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFF E00007FFF000007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001 F8F00001F0F00001F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0 001D297CA826>83 D<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003F C007C078003FC003C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0E0003F C000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC0000000003F C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F C0000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFFFFE0002B287E A730>I<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F80 00003F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F80 7F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC 01FC03FC1E1B7E9A21>97 D<001FF80000FFFE0003F01F0007E03F800FC03F801F803F80 3F801F007F800E007F0000007F000000FF000000FF000000FF000000FF000000FF000000 FF000000FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E00700 03F01E0000FFFC00001FE0001A1B7E9A1F>99 D<00003FF80000003FF80000003FF80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03F F80007E00FF8000FC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F8 00FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800 7F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00FF80003 F03BFF8000FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F 000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFF E0FFFFFFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000 E00FC001C007E0038003F81F0000FFFE00001FF0001B1B7E9A20>I104 D<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FF E0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F E00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I108 D110 D<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F 0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF 0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001 FFFC00003FE0001D1B7E9A22>II< FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0FE0000FE0000FE0000FE000 0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000 FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF01E03F03800F0700070F00070 F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC0000FC 60007CE0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00161B7E9A1B>I<0070 0000700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFF F0FFFFF007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F03807F03807F03807F03807F03807F03803F03803F87001F86000FF C0001F8015267FA51B>II120 DI<3FFFFF803F FFFF803F007F003C00FE003801FE007803FC007803F8007007F800700FF000700FE00000 1FC000003FC000007F8000007F000000FF000001FE038001FC038003F8038007F803800F F007800FE007801FE007003FC00F003F801F007F007F00FFFFFF00FFFFFF00191B7E9A1F >I E /Fe 1 59 df<70F8F8F87005057C840E>58 D E /Ff 55 123 df<0038007800F001E003C007800F000E001C001C0038003800700070007000E000E000 E000E000E000E000E000E000E000E000700070007000380038001C001C000E000F000780 03C001E000F8007800380D2878A21A>40 D<6000F00078003C001E000F000780038001C0 01C000E000E0007000700070003800380038003800380038003800380038003800700070 007000E000E001C001C0038007800F001E003C007800F00060000D287CA21A>I<00E000 00E00000E00000E00040E040F0E1E0F8E3E07EEFC01FFF0007FC0003F80007FC001FFF00 7EEFC0F8E3E0F0E1E040E04000E00000E00000E00000E00013157D991A>I<183E7E7F3F 1F070E0E1CFCF8E0080D77851A>44 D<3078FCFC7830060676851A>46 D<0000C00001E00001E00003E00003C00007C0000780000F80000F00000F00001F00001E 00003E00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C0 0007C0000780000F80000F00001F00001E00001E00003E00003C00007C0000780000F800 00F00000F0000060000013277DA21A>I<01F00007FC000FFE001F1F001C070038038038 03807001C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E0 00E0F001E07001C07001C07803C03803803C07801C07001F1F000FFE0007FC0001F00013 1E7D9D1A>I<00C001C001C003C007C00FC07FC0FDC071C001C001C001C001C001C001C0 01C001C001C001C001C001C001C001C001C001C001C001C07FFF7FFF7FFF101E7B9D1A> I<03F0000FFC001FFF003C0F807803C07001C0E000E0F000E0F000E06000E00000E00000 E00001C00001C0000380000780000F00000E00003C00007C0000F00001E00003C0000780 000F00001E00E03C00E07FFFE0FFFFE07FFFE0131E7D9D1A>I<3078FCFC783000000000 00000000003078FCFC7830061576941A>58 D<183C7E7E3C18000000000000000000183C 7E7E3E1E0E0E1C3CF8F0C0071C77941A>I<7FFFF0FFFFF8FFFFF87FFFF0000000000000 0000000000007FFFF0FFFFF8FFFFF87FFFF0150C7E941A>61 D<003800007C00007C0000 6C0000EE0000EE0000EE0000C60000C60001C70001C70001C70001C70003838003838003 83800383800701C00701C007FFC007FFC00FFFE00E00E00E00E00E00E00E00E01C00707F 01FCFF83FE7F01FC171E7F9D1A>65 D<007C3801FF3807FFF80F83F81E00F81C00783800 78380038700038700038700000E00000E00000E00000E00000E00000E00000E00000E000 007000007000387000383800383800381C00701E00F00F83E007FFC001FF80007C00151E 7E9D1A>67 D<7FFE00FFFF007FFF801C07C01C01E01C00F01C00701C00781C00381C0038 1C003C1C001C1C001C1C001C1C001C1C001C1C001C1C001C1C001C1C003C1C00381C0038 1C00781C00701C00F01C01E01C07C07FFFC0FFFF007FFE00161E7F9D1A>II72 DI<7F E000FFF0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001C0E001C0E 001C0E001C0E001C7FFFFCFFFFFC7FFFFC161E7F9D1A>76 D78 D<0FFE003FFF807FFFC07C07C07001C0F001E0E000E0 E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0 E000E0E000E0E000E0E000E0F001E0F001E07001C07C07C07FFFC03FFF800FFE00131E7D 9D1A>II82 D<03F1C00FFDC03FFFC07C0FC07003C0E003 C0E001C0E001C0E001C0E000007000007800003F00001FF00007FE0000FF00000F800003 C00001C00000E00000E06000E0E000E0E000E0E001C0F001C0FC0780FFFF80EFFE00E3F8 00131E7D9D1A>I<7FFFFEFFFFFEFFFFFEE0380EE0380EE0380EE0380E00380000380000 380000380000380000380000380000380000380000380000380000380000380000380000 380000380000380000380000380000380003FF8003FF8003FF80171E7F9D1A>II91 D93 D<7FFFC0FFFFE0FFFFE07FFFC013047D7E1A>95 D<1FF0003FFC007FFE00780F00300700000380000380007F8007FF801FFF803F83807803 80700380E00380E00380E00380700780780F803FFFFC1FFDFC07F0FC16157D941A>97 DI<00FF8003FFC00FFFE01F 01E03C00C0780000700000700000E00000E00000E00000E00000E0000070000070000078 00703C00701F01F00FFFE003FFC000FE0014157D941A>I<001FC0001FC0001FC00001C0 0001C00001C00001C00001C00001C001F1C007FDC00FFFC01E0FC03C07C07803C07001C0 E001C0E001C0E001C0E001C0E001C0E001C0E001C07003C07003C03807C03E0FC01FFFFC 07FDFC01F1FC161E7E9D1A>I<01F80007FF000FFF801E07C03C01C07800E07000E0E000 70E00070FFFFF0FFFFF0FFFFF0E000007000007000007800703C00701F01F00FFFE003FF C000FE0014157D941A>I<0007E0001FF0003FF800787800F03000E00000E00000E00000 E0007FFFF0FFFFF0FFFFF000E00000E00000E00000E00000E00000E00000E00000E00000 E00000E00000E00000E00000E00000E00000E0003FFF807FFFC03FFF80151E7F9D1A>I< 01F87C07FFFE0FFFFE1E078C1C03803801C03801C03801C03801C03801C01C03801E0780 1FFF001FFE0039F8003800003800001C00001FFF801FFFE03FFFF878007C70001CE0000E E0000EE0000EE0000E70001C78003C3E00F81FFFF007FFC001FF0017217F941A>II<00C00001E00001E00000C00000 00000000000000000000000000000000007FE0007FE0007FE00000E00000E00000E00000 E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0007F FF80FFFFC07FFF80121F7C9E1A>I<000C001E001E000C0000000000000000000000000F FE0FFE0FFE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E001C601CF038FFF87FF01FC00F2A7E9E1A>III<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C00 1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00 1C1C1C001C1C1C001C1C1C007F1F1F00FF9F9F807F1F1F00191580941A>II<01F00007FC001F FF003E0F803C07807803C07001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E070 01C07803C03C07803E0F801FFF0007FC0001F00013157D941A>II<01F8E007FEE00FFFE01E07E03C03 E07801E07001E0E000E0E000E0E000E0E000E0E000E0E000E0E001E07001E07803E03C03 E01E0FE00FFFE007FCE001F0E00000E00000E00000E00000E00000E00000E00000E00000 E0000FFE000FFE000FFE17207E941A>I<7F83F0FF8FF87FBFFC03FC3C03F01803E00003 C00003C0000380000380000380000380000380000380000380000380000380000380007F FF00FFFF007FFF0016157E941A>I<07FB801FFF807FFF80780780E00380E00380E00380 7800007FC0003FFC0007FE00003F800007806001C0E001C0E001C0F003C0FC0780FFFF00 EFFE00E3F80012157C941A>I<00C00001C00001C00001C00001C00001C00001C0007FFF E0FFFFE0FFFFE001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 0001C07001C07001C07001C07000E0E000FFE0007FC0001F00141C7F9B1A>II<7F83FCFFC7FE 7F83FC0E00E00E00E00E00E00701C00701C00701C003838003838003838001C70001C700 01C70000EE0000EE0000EE00007C00007C0000380017157F941A>II<7FC7F87FCFFC7FC7F807 03C003838003C70001EF0000FE00007C00007800003800007C0000EE0001EE0001C70003 83800783C00F01C07FC7FCFFC7FE7FC7FC17157F941A>I<7FC3FCFFC7FE7FC3FC0E00E0 0E00E00700E00701C00781C00381C003838003C38001C38001C70000E70000E70000E600 006600006E00003C00003C00003C0000380000380000380000700000700030700078E000 71E0007FC0003F80001E000017207F941A>I<7FFFF0FFFFF0FFFFF0E001E0E003C0E007 80000F00001E00003C0000780000F00001E00003C0000780000F00381E00383C00387800 38FFFFF8FFFFF8FFFFF815157E941A>I E /Fg 35 123 df<387CFEFEFE7C3807077C86 10>46 D<00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C7C007CFC007CFC00 7EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC00 7E7C007C7C007C7C007C3E00F83E00F81F01F00F83E007FFC000FE0017207E9F1C>48 D<00180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C9F1C>I<03FC000F FF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003F80003F000 03F00007E00007C0000F80001F00003E0000380000700000E01801C0180380180700180E 00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007FFC00F07E0 1E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0001F8001FE00 01FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC 7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E00003E00007 E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E00E07E00C07 E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E00007E00007 E00007E000FFFE00FFFE17207E9F1C>I<1000201E01E01FFFC01FFF801FFF001FFE001F F8001BC00018000018000018000018000019FC001FFF001E0FC01807E01803E00003F000 03F00003F80003F83803F87C03F8FE03F8FE03F8FC03F0FC03F07007E03007C01C1F800F FF0003F80015207D9F1C>I<001F8000FFE003F07007C0F00F01F81F01F83E01F83E01F8 7E00F07C00007C0000FC0800FC7FC0FCFFE0FD80F0FF00F8FE007CFE007CFC007EFC007E FC007EFC007E7C007E7C007E7C007E3C007C3E007C1E00F80F00F00783E003FFC000FF00 17207E9F1C>I<6000007800007FFFFE7FFFFE7FFFFC7FFFF87FFFF87FFFF0E00060E000 C0C00180C00300C00300000600000C00001C0000180000380000780000780000F00000F0 0000F00001F00001F00001F00003F00003F00003F00003F00003F00003F00003F00001E0 0017227DA11C>I<00FE0003FFC00703E00E00F01C00F01C00783C00783E00783F00783F 80783FE0F01FF9E01FFFC00FFF8007FFC003FFE007FFF01E7FF83C1FFC7807FC7801FEF0 00FEF0003EF0001EF0001EF0001CF8001C7800383C00381F01F00FFFC001FF0017207E9F 1C>I<01FE0007FF800F83E01E01F03E00F07C00F87C0078FC007CFC007CFC007CFC007E FC007EFC007EFC007E7C00FE7C00FE3E01FE1E037E0FFE7E07FC7E00207E00007C00007C 1E007C3F00F83F00F83F00F03F01E01E03C01C0F800FFE0003F80017207E9F1C>I73 D76 DI82 D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF00 00FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F0000 3FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F >I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801 C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127>I<07 FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F 01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97 DI<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC00 00FC0000FC0000FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE001416 7E9519>I<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000003E 0000003E0000003E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E 003E003E007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E 00FC003E00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC3F C01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FF FFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC07003FFC000 FF0015167E951A>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03E07C03E0 7C03E03C03C03E07C01F0F801FFF0013FC003000003000003800003FFF801FFFF00FFFF8 1FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFFE001FF00 18217E951C>103 DI<1C003E007F007F007F003E001C0000000000000000000000 00000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 1F001F001F001F00FFE0FFE00B247EA310>I108 DII<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC 007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000 FE0017167E951C>I114 D<018000018000018000018000038000038000078000078000 0F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F80000F80000F8000 0F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE0000F800 11207F9F16>116 DI119 D121 D<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00C07E0000FC0000F80001F0 0003F03007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0FFFFE014167E9519 >I E /Fh 30 123 df<0001E0000003E000000FE000007FE0001FFFE000FFFFE000FFBF E000E03FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F E0007FFFFFF07FFFFFF07FFFFFF01C2E7AAD29>49 D<003FF00001FFFE0007FFFF800FC0 7FE01E001FF03C000FF87F0007FC7F8007FEFFC007FEFFC003FEFFC003FFFFC003FF7F80 03FF7F8003FF3F0003FF000003FF000003FE000003FE000007FC000007FC00000FF80000 0FF000001FE000001FC000003F8000007F000000FE000001F8000001F0000003E0000007 8007000F0007001E0007003C000F0078000E00F0000E01C0001E03FFFFFE07FFFFFE0FFF FFFE1FFFFFFE3FFFFFFE7FFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC202E7CAD29>I<000FFC 0000007FFF800001F01FE00003C00FF000070007F8000FE007FC000FF007FC001FF007FE 001FF807FE001FF807FE001FF807FE001FF807FE000FF007FC0007E007FC00018007FC00 00000FF80000000FF00000001FE00000001FC00000007F8000001FFE0000001FFC000000 1FFF800000001FF000000007F800000003FC00000003FE00000003FF00000001FF800000 01FF800E0001FFC03F8001FFC07FC001FFC07FC001FFC0FFE001FFC0FFE001FFC0FFE001 FF80FFE001FF80FFC003FF007F8003FF003F0003FE001F0007FC000FE01FF80007FFFFE0 0001FFFF8000001FFC0000222E7DAD29>I<0000007800000000F800000001F800000003 F800000007F800000007F80000000FF80000001FF80000003FF80000007FF800000077F8 000000F7F8000001E7F8000003C7F800000787F800000707F800000F07F800001E07F800 003C07F800007807F800007007F80000F007F80001E007F80003C007F800078007F8000F 0007F8000F0007F8001E0007F8003C0007F800780007F800F00007F800FFFFFFFFF0FFFF FFFFF0FFFFFFFFF000000FF80000000FF80000000FF80000000FF80000000FF80000000F F80000000FF80000000FF80000000FF800000FFFFFF0000FFFFFF0000FFFFFF0242E7EAD 29>I<000003FF80018000003FFFF003800001FFFFFC0F800007FF007F1F80001FF8000F BF80003FE00003FF8000FF800000FF8001FF0000007F8003FE0000003F8007FC0000003F 8007FC0000001F800FF80000001F801FF80000000F801FF00000000F803FF00000000780 3FF000000007807FF000000007807FE000000007807FE000000000007FE00000000000FF E00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0 0000000000FFE00000000000FFE00000000000FFE000000000007FE000000000007FE000 000000007FE000000000007FF000000003803FF000000003803FF000000003801FF00000 0003801FF800000007800FF8000000070007FC000000070007FC0000000E0003FE000000 1E0001FF0000003C0000FF8000007800003FE00000F000001FF80003E0000007FF003F80 000001FFFFFE000000003FFFF80000000003FF80000031317BB03C>67 D73 D76 DI82 D<001FF0018000FFFF038003FFFFC78007F00FFF800F8001FF801F00007F803F00001F80 3E00000F807E00000F807E00000780FE00000780FE00000780FE00000380FF00000380FF 00000380FF80000000FFE00000007FFC0000007FFFE000007FFFFE00003FFFFFC0001FFF FFF0001FFFFFF8000FFFFFFC0003FFFFFE0001FFFFFF00007FFFFF80001FFFFF800000FF FFC0000007FFC0000000FFE00000003FE00000003FE00000001FE06000001FE0E000000F E0E000000FE0E000000FE0E000000FC0F000000FC0F000000FC0F800001F80FC00001F80 FF00003F00FFC0007E00FFFC01FC00F1FFFFF800E03FFFE000C007FF000023317BB02E> I<3FFFFFFFFFFF003FFFFFFFFFFF003FFFFFFFFFFF003FE00FFC01FF007F000FFC003F80 7E000FFC001F807C000FFC000F8078000FFC00078078000FFC00078070000FFC00038070 000FFC00038070000FFC00038070000FFC000380E0000FFC0001C0E0000FFC0001C0E000 0FFC0001C0E0000FFC0001C000000FFC00000000000FFC00000000000FFC00000000000F FC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC 00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00 000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000 0000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000 00000FFC00000000000FFC00000000000FFC00000000000FFC000000007FFFFFFF800000 7FFFFFFF8000007FFFFFFF800032307DAF39>I<007FF8000003FFFF000007FFFFC0000F E01FE0001FF007F0001FF003F8001FF003FC001FF001FE000FE001FE0007C001FE000100 01FE00000001FE00000001FE000001FFFE00003FFFFE0001FFF1FE0007FE01FE000FF001 FE001FC001FE003F8001FE007F8001FE00FF0001FE00FF0001FE00FF0001FE00FF0001FE 00FF0003FE007F8003FE007FC00EFE003FF03CFF000FFFF87FF807FFF03FF800FF800FF8 25207E9F28>97 D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800 000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 0007F800000007F800000007F800000007F800000007F800000007F80FF00007F87FFE00 07F9FFFF8007FFE03FC007FF000FE007FE0007F007F80003F807F80003FC07F80003FC07 F80001FE07F80001FE07F80001FE07F80001FF07F80001FF07F80001FF07F80001FF07F8 0001FF07F80001FF07F80001FF07F80001FF07F80001FE07F80001FE07F80001FE07F800 03FC07F80003FC07FC0007F807FE0007F007F7001FE007E3E07FC007C1FFFF0007807FFE 0007001FE00028327EB12E>I<0007FF00007FFFE000FFFFF003FC03F807F007FC0FE007 FC1FE007FC3FC007FC3FC003F87FC001F07F8000407F800000FF800000FF800000FF8000 00FF800000FF800000FF800000FF800000FF8000007F8000007FC000007FC000003FC000 0E3FE0000E1FE0001C0FF0001C07F8007803FF01F000FFFFE0007FFF800007FC001F207D 9F25>I<00000007E0000003FFE0000003FFE0000003FFE00000003FE00000001FE00000 001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000000 1FE00000001FE00000001FE00000001FE00000001FE0000FF81FE0007FFF1FE001FFFFDF E003FE03FFE007F800FFE00FE0003FE01FE0001FE03FC0001FE03FC0001FE07F80001FE0 7F80001FE07F80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF 80001FE0FF80001FE0FF80001FE07F80001FE07F80001FE07F80001FE03FC0001FE03FC0 001FE01FC0003FE00FE0007FE007F001FFE003FC07DFF001FFFF9FFF007FFE1FFF000FF0 1FFF28327DB12E>I<0007FC0000003FFF800000FFFFE00003FC07F00007F801F8000FE0 00FC001FE0007E003FC0007E003FC0003F007FC0003F007F80003F007F80003F80FF8000 3F80FF80003F80FFFFFFFF80FFFFFFFF80FFFFFFFF80FF80000000FF80000000FF800000 007F800000007F800000003FC00000003FC00003801FC00003801FE00007800FF0000F00 07F8001E0003FE00FC0000FFFFF800003FFFE0000003FF000021207E9F26>I<001FF007 E000FFFE3FF001FFFF7FF807F83FF1F80FE00FE1F80FE00FE0F01FC007F0601FC007F000 3FC007F8003FC007F8003FC007F8003FC007F8003FC007F8001FC007F0001FC007F0000F E00FE0000FE00FE00007F83FC00007FFFF000006FFFE00000E1FF000000E000000001E00 0000001E000000001F000000001F800000001FFFFFC0000FFFFFF8000FFFFFFE0007FFFF FF0003FFFFFF8007FFFFFFC01FFFFFFFE03F00007FE07E00000FF0FC000007F0FC000003 F0FC000003F0FC000003F0FC000003F07E000007E03F00000FC01FC0003F800FF801FF00 07FFFFFE0000FFFFF000001FFF8000252F7E9F29>103 D<01F800000000FFF800000000 FFF800000000FFF8000000000FF80000000007F80000000007F80000000007F800000000 07F80000000007F80000000007F80000000007F80000000007F80000000007F800000000 07F80000000007F80000000007F80000000007F80000000007F807F8000007F83FFF0000 07F87FFF800007F8F03FC00007F9C01FE00007FB000FE00007FE000FF00007FE000FF000 07FC000FF00007FC000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 07F8000FF00007F8000FF00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80 29327DB12E>I<01C00007F0000FF8000FF8001FFC001FFC001FFC000FF8000FF80007F0 0001C00000000000000000000000000000000000000000000000000001F800FFF800FFF8 00FFF8000FF80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 0007F80007F800FFFF80FFFF80FFFF8011337DB217>I<01F800FFF800FFF800FFF8000F F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 F80007F80007F80007F80007F80007F80007F800FFFFC0FFFFC0FFFFC012327DB117> 108 D<03F007F8000FF000FFF03FFF007FFE00FFF07FFF80FFFF00FFF0F03FC1E07F800F F1C01FE3803FC007F3000FE6001FC007F6000FFC001FE007FE000FFC001FE007FC000FF8 001FE007FC000FF8001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007 F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0 001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007 F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0 001FE007F8000FF0001FE007F8000FF0001FE0FFFFC1FFFF83FFFFFFFFC1FFFF83FFFFFF FFC1FFFF83FFFF40207D9F45>I<03F007F80000FFF03FFF0000FFF07FFF8000FFF0F03F C0000FF1C01FE00007F3000FE00007F6000FF00007FE000FF00007FC000FF00007FC000F F00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000F F00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000F F00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000F F00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029207D9F2E>I<0007FE 0000003FFFC00000FFFFF00003FC03FC0007F000FE000FE0007F001FC0003F803FC0003F C03FC0003FC07F80001FE07F80001FE07F80001FE0FF80001FF0FF80001FF0FF80001FF0 FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF07F80001FE07F80001FE07F 80001FE03FC0003FC03FC0003FC01FE0007F800FE0007F0007F801FE0003FE07FC0001FF FFF800003FFFC0000007FE000024207E9F29>I<03F03F00FFF07FC0FFF1FFE0FFF3C7F0 0FF38FF807F70FF807F60FF807FE0FF807FC07F007FC03E007FC008007F8000007F80000 07F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000 07F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE000 FFFFE0001D207E9F22>114 D<00FF870007FFEF001FFFFF003F007F003C001F0078000F 00F8000700F8000700F8000700FC000700FF000000FFF800007FFFC0003FFFF0003FFFFC 000FFFFE0007FFFF0001FFFF80001FFF800000FFC000001FC060000FC0E00007C0E00007 C0F00007C0F8000780F8000F80FE000F00FF803E00FFFFFC00F3FFF800C07FC0001A207D 9F21>I<00380000380000380000380000380000780000780000780000F80000F80001F8 0003F80007F8001FF800FFFFFEFFFFFEFFFFFE07F80007F80007F80007F80007F80007F8 0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80707F8 0707F80707F80707F80707F80707F80703F80E03FC0E01FE1C00FFF8007FF0000FE0182E 7EAD20>I<01F80003F000FFF801FFF000FFF801FFF000FFF801FFF0000FF8001FF00007 F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007 F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007 F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007 F8000FF00007F8001FF00007F8001FF00003F8003FF00003F8006FF00001FE03CFF80000 FFFF8FFF80007FFF0FFF80000FFC0FFF8029207D9F2E>I119 D121 D<3FFFFFFC3FFFFFFC3FFFFFFC3FC00FF83E001FF03C003FF038003FE078007FC07800FF 807001FF807001FF007003FE007007FC00000FF800000FF800001FF000003FE000007FC0 0E007FC00E00FF800E01FF000E03FE000E07FE001E07FC001E0FF8001C1FF0003C3FF000 7C3FE000FC7FC007FCFFFFFFFCFFFFFFFCFFFFFFFC1F207E9F25>I E /Fi 71 123 df<001F83E000706E3000C07C780180F8780380F0780700700007007000 07007000070070000700700007007000070070000700700007007000FFFFFFC007007000 070070000700700007007000070070000700700007007000070070000700700007007000 070070000700700007007000070070000700700007007000070070000700700007007800 7FE3FF801D2380A21C>11 D<001FC0000070200000C01000018038000380780007007800 0700300007000000070000000700000007000000070000000700000007000000FFFFF800 070078000700380007003800070038000700380007003800070038000700380007003800 070038000700380007003800070038000700380007003800070038000700380007003800 070038007FE1FF80192380A21B>I<001FD8000070380000C07800018078000380780007 0038000700380007003800070038000700380007003800070038000700380007003800FF FFF800070038000700380007003800070038000700380007003800070038000700380007 003800070038000700380007003800070038000700380007003800070038000700380007 003800070038007FF3FF80192380A21B>I<7038F87CFC7EFC7E743A0402040204020402 0804080410081008201040200F0F7EA218>34 D<70F8FCFC740404040408081010204006 0F7CA20E>39 D<00200040008001000300060004000C000C001800180030003000300070 00600060006000E000E000E000E000E000E000E000E000E000E000E000E000E000E00060 00600060007000300030003000180018000C000C0004000600030001000080004000200B 327CA413>I<800040002000100018000C000400060006000300030001800180018001C0 00C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000E000E000C0 00C000C001C0018001800180030003000600060004000C00180010002000400080000B32 7DA413>I<70F8FCFC7404040404080810102040060F7C840E>44 DI<70F8F8F87005057C840E>I<00008000018000018000030000 0300000300000600000600000600000C00000C00000C0000180000180000180000300000 300000300000600000600000600000C00000C00000C00001800001800001800001800003 00000300000300000600000600000600000C00000C00000C000018000018000018000030 0000300000300000600000600000600000C00000C00000C0000011317DA418>I<01F000 071C000C06001803003803803803807001C07001C07001C07001C0F001E0F001E0F001E0 F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C0 7001C07001C07803C03803803803801C07000C0600071C0001F00013227EA018>I<0080 03800F80F380038003800380038003800380038003800380038003800380038003800380 03800380038003800380038003800380038003800380038007C0FFFE0F217CA018>I<03 F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801E0F801E02003E000 03E00003C00003C0000780000700000E00001C0000180000300000600000C00001800001 00000200200400200800201800603000403FFFC07FFFC0FFFFC013217EA018>I<03F800 0C1E001007002007804007C07807C07803C07807C03807C0000780000780000700000F00 000E0000380003F000001C00000F000007800007800003C00003C00003E02003E07003E0 F803E0F803E0F003C04003C0400780200780100F000C1C0003F00013227EA018>I<0002 00000600000E00000E00001E00001E00002E00004E00004E00008E00008E00010E00020E 00020E00040E00040E00080E00100E00100E00200E00200E00400E00800E00FFFFF8000E 00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA018>I<1000801E 07001FFF001FFE001FF80013E00010000010000010000010000010000010000010F80013 0E001407001803801003800001C00001C00001E00001E00001E00001E07001E0F001E0F0 01E0E001C08001C04003C04003802007001006000C1C0003F00013227EA018>I<007E00 01C1000300800601C00E03C01C03C0180180380000380000780000700000700000F0F800 F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0F001E07001E0 7001E07001E03801C03801C01803801C03000C0600070C0001F00013227EA018>I<4000 006000007FFFE07FFFC07FFFC0400080C001008001008002008002000004000008000008 0000100000300000200000600000600000600000E00000C00000C00001C00001C00001C0 0001C00003C00003C00003C00003C00003C00003C00003C00003C00001800013237DA118 >I<01F800060E000803001001802001802000C06000C06000C06000C07000C07801803E 01003F02001FC4000FF80003F80003FC00067F00083F80100F803007C06001C06000E0C0 00E0C00060C00060C00060C000606000406000C03000801803000E0E0003F00013227EA0 18>I<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0 F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C0 0001C00001C0000380000380300300780700780600700C002018001030000FC00013227E A018>I<70F8F8F870000000000000000000000070F8F8F87005157C940E>I<70F8F8F870 000000000000000000000070F8F8F87808080808101010204040051F7C940E>I<000180 0000018000000180000003C0000003C0000003C0000005E0000005E000000DF0000008F0 000008F0000010F800001078000010780000203C0000203C0000203C0000401E0000401E 0000401E0000800F0000800F0000FFFF000100078001000780030007C0020003C0020003 C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF800FFF20237EA225>65 DI< 0007E0100038183000E0063001C00170038000F0070000F00E0000701E0000701C000030 3C0000303C0000307C0000107800001078000010F8000000F8000000F8000000F8000000 F8000000F8000000F8000000F800000078000000780000107C0000103C0000103C000010 1C0000201E0000200E000040070000400380008001C0010000E0020000381C000007E000 1C247DA223>IIII<0007F008003C0C1800E0021801C001B8038000F8070000780F0000381E000038 1E0000183C0000183C0000187C0000087800000878000008F8000000F8000000F8000000 F8000000F8000000F8000000F8000000F8001FFF780000F8780000787C0000783C000078 3C0000781E0000781E0000780F00007807000078038000B801C000B800E00318003C0C08 0007F00020247DA226>III76 DII<000FE00000783C0000E00E0003C00780078003C00F0001E00E0000 E01E0000F03C0000783C0000787C00007C7C00007C7800003C7800003CF800003EF80000 3EF800003EF800003EF800003EF800003EF800003EF800003EF800003E7800003C7C0000 7C7C00007C3C0000783E0000F81E0000F00F0001E00F0001E0078003C003C0078000E00E 0000783C00000FE0001F247DA226>II82 D<03F0200C0C601802603001E07000E0600060 E00060E00060E00020E00020E00020F00000F000007800007F00003FF0001FFE000FFF00 03FF80003FC00007E00001E00000F00000F0000070800070800070800070800070C00060 C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFFF878078078600780 18400780084007800840078008C007800C80078004800780048007800480078004000780 000007800000078000000780000007800000078000000780000007800000078000000780 000007800000078000000780000007800000078000000780000007800000078000000780 000007800000078000000FC00003FFFF001E227EA123>II87 D<7FF807FF0007E001F80003C000E00003E000C00001E000800000F001000000F8030000 0078020000007C040000003E0C0000001E080000001F100000000FB000000007A0000000 07C000000003E000000001E000000001F000000003F80000000278000000047C0000000C 3E000000081E000000101F000000300F80000020078000004007C00000C003E000008001 E000010001F000030000F000070000F8001F8001FC00FFE007FFC022227FA125>II<0804100820 102010402040208040804080408040B85CFC7EFC7E7C3E381C0F0F7AA218>92 D<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7001E07003C07 00780700700700F00708F00708F00708F00F087817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E00 1E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F001723 7FA21B>I<01FE000703000C07801C0780380300780000700000F00000F00000F00000F0 0000F00000F00000F000007000007800403800401C00800C010007060001F80012157E94 16>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E0 0000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0 F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF001F0FE 17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F000 00F00000F00000F00000F000007000007800203800201C00400E008007030000FC001315 7F9416>I<003C00C6018F038F030F070007000700070007000700070007000700FFF807 000700070007000700070007000700070007000700070007000700070007000700070007 807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C07803C07803C07 803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFF C00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE 0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E 00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E 0070FFE7FF18237FA21B>I<1C001E003E001E001C000000000000000000000000000000 00000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E00FFC00A227FA10E>I<01C003E003E003E001C00000000000000000000000 000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000 E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E000B2C82A10F >I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10000E38000E F8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17 237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E0 0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E 003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00 3800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E0070 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070 0E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070700070F000 78F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E03800707 0001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E001C0E001E0E 001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E41C00E 3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000171F7F94 1B>I<01F8200704600E02601C01603801E07800E07800E0F000E0F000E0F000E0F000E0 F000E0F000E0F000E07000E07800E03801E01C01E00C02E0070CE001F0E00000E00000E0 0000E00000E00000E00000E00000E00000E00000E0000FFE171F7E941A>I<0E3CFE461E 8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FF F010157F9413>I<0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C 800C800CC00CC008E018D0308FC00E157E9413>I<02000200020002000600060006000E 001E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E 040E040E040708030801F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E00700E0070 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F0 06017003827800FC7F18157F941B>IIIII<3FFFC038038030078020070060 0E00401C00403C0040380000700000E00001E00001C0000380400700400F00400E00C01C 0080380080780180700780FFFF8012157F9416>I E /Fj 29 122 df<78FCFCFEFE7A02020202040404081010204007127B8511>44 D<78FCFCFCFC7806067B8511>46 D<007F000001C1C0000780F0000F0078000E0038001C 001C003C001E003C001E003C001E0078000F0078000F0078000F0078000F00F8000F80F8 000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8 000F80F8000F80F8000F80F8000F80F8000F8078000F0078000F0078000F0078000F003C 001E003C001E003C001E001C001C000E0038000F0078000780F00001C1C000007F000019 297EA71E>48 D<00100000700001F0000FF000FEF000F0F00000F00000F00000F00000F0 0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00000F00000F00001F8007FFFE07FFFE013287BA71E>I<00FE0007FF800E07E018 03F02001F82000F840007C40007CF8007EFC007EFC003EFC003EFC003E78007E00007E00 007C00007C0000F80000F80001F00001E00003C0000780000700000E00001C0000380000 700000600000C0000180020300020600040C000418000410000C3FFFFC7FFFF8FFFFF8FF FFF817287DA71E>I<007F000003FFC0000701F0000C00F80010007C001C007C003E007E 003E003E003E003E001E003E000C007E0000007C0000007C00000078000000F0000000E0 000001C0000007000000FF00000001E0000000F0000000780000003C0000003E0000001F 0000001F0000001F8000001F8030001F8078001F80FC001F80FC001F80FC001F00F8001F 0040003F0040003E0030007C001800F8000F01F00003FFC000007F000019297EA71E>I< 1800181F00F01FFFE01FFFC01FFF801FFF0011F800100000100000100000100000100000 100000100000100000107E001183801600C01800E010007000007800003C00003C00003C 00003E00003E00003E70003EF8003EF8003EF8003EF8003C80003C40007C400078200078 3000F01801E00E07C007FF0001FC0017297DA71E>53 D<20000000380000003FFFFF803F FFFF803FFFFF007FFFFF0060000200400004004000040040000800800010008000200000 002000000040000000800000008000000100000003000000020000000600000006000000 0C0000000C0000001C0000001C0000001C00000038000000380000003800000078000000 780000007800000078000000F8000000F8000000F8000000F8000000F8000000F8000000 F8000000F8000000700000192A7DA81E>55 D<007F000001FFC00007C1E0000F0070001E 0038001C003C003C001C0078001E0078001E00F8000F00F8000F00F8000F00F8000F00F8 000F80F8000F80F8000F80F8000F8078000F8078001F803C001F803C001F801C002F800E 004F800700CF8003810F80007E0F8000000F0000000F0000000F0000001E0000001E0000 001E0000003C001C003C003E0078003E0070003C00E0001801C0001C0780000FFE000003 F8000019297EA71E>57 D<0000FF00100007FFE030001FC07830003E000C7000F80006F0 01F00003F003E00001F007C00000F00F800000700F800000701F000000303F000000303E 000000303E000000107E000000107E000000107C00000000FC00000000FC00000000FC00 000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007C0000 00007E000000007E000000103E000000103E000000103F000000101F000000200F800000 200F8000006007C000004003E000008001F000018000F8000300003E000E00001FC03800 0007FFE0000000FF8000242B7DA92B>67 D<03FFFF03FFFF0007E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E03003E07803E0FC03E0FC03E0FC03C0F807C0400780200F00300E000C3C0003F000 182A7DA81F>74 D<0001FF0000000F01E000003C0078000078003C0000E0000E0001E000 0F0003C000078007800003C00F800003E01F000001F01F000001F03E000000F83E000000 F87E000000FC7E000000FC7C0000007C7C0000007CFC0000007EFC0000007EFC0000007E FC0000007EFC0000007EFC0000007EFC0000007EFC0000007EFC0000007E7C0000007C7E 000000FC7E000000FC7E000000FC3E000000F83F000001F81F000001F01F000001F00F80 0003E007800003C007C00007C003E0000F8000F0001E000078003C00003C007800000F01 E0000001FF0000272B7DA92E>79 DI82 D<00FE010003FF83000F81E3001E0037003C 001F0038000F007800070070000700F0000300F0000300F0000300F0000100F8000100F8 000100FC0000007C0000007F0000003FE000001FFF00000FFFE00007FFF80003FFFC0000 7FFE000007FF0000007F0000001F8000000F80000007C0000007C0800003C0800003C080 0003C0800003C0C00003C0C0000380C0000380E0000780F0000700F8000E00EE001C00C3 C07800C1FFF000803FC0001A2B7DA921>I<7FFFFFFFF87FFFFFFFF87C007C00F870007C 003860007C001840007C000840007C0008C0007C000CC0007C000C80007C000480007C00 0480007C000480007C000480007C000400007C000000007C000000007C000000007C0000 00007C000000007C000000007C000000007C000000007C000000007C000000007C000000 007C000000007C000000007C000000007C000000007C000000007C000000007C00000000 7C000000007C000000007C000000007C000000007C000000007C00000000FE000000FFFF FE0000FFFFFE0026297EA82B>I86 D<01FC00000E0780001001C0003C00 E0003E00F0003E0078001C00780008007800000078000000780000007800007FF80003E0 78000F8078001F0078003E0078007C00780078007820F8007820F8007820F8007820F800 F8207C00F8203C013C401F063FC007F80F001B1A7E991E>97 D<007E0003C3800700E00E 00F01C00703C00783C003878003C78003CF8003CF8003CFFFFFCF80000F80000F80000F8 0000F800007800007C00003C00043C00041E00080E001007002001C0C0007F00161A7E99 1B>101 D<07800000FF800000FF8000000F800000078000000780000007800000078000 0007800000078000000780000007800000078000000780000007800000078000000783F8 00078C1C0007900E0007A0070007A0078007C0078007C007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 800780078007800780078007800780078007800780FFFCFFFCFFFCFFFC1E2A7FA921> 104 D<0F001F801F801F801F800F0000000000000000000000000000000000000007807F 807F800F8007800780078007800780078007800780078007800780078007800780078007 800780078007800780FFF8FFF80D297FA811>I<0781F800FC00FF860E030700FF98070C 03800FA0079003C007A003D001E007C003E001E007C003E001E0078003C001E0078003C0 01E0078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003C0 01E0078003C001E0078003C001E0078003C001E0078003C001E0078003C001E0078003C0 01E0078003C001E0078003C001E0078003C001E0FFFC7FFE3FFFFFFC7FFE3FFF301A7F99 33>109 D<0783F800FF8C1C00FF900E000FA0070007A0078007C0078007C00780078007 800780078007800780078007800780078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800780078007800780FFFCFFFCFFFCFF FC1E1A7F9921>I<007F000001C1C000070070000E0038001C001C003C001E003C001E00 78000F0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80 F8000F8078000F0078000F003C001E003C001E001E003C000E0038000700700001C1C000 007F0000191A7E991E>I<0787C0FF98E0FF91F00FA1F007C1F007C0E007C00007800007 800007800007800007800007800007800007800007800007800007800007800007800007 800007800007800007C000FFFE00FFFE00141A7F9917>114 D<07F8401C06C03001C060 00C06000C0E00040E00040F00040F800007E00007FF0003FFE000FFF0003FF80003FC000 07C08001E08001E0C000E0C000E0C000E0E000C0F001C0F80180C4070083F800131A7E99 18>I<0080000080000080000080000180000180000180000380000380000780000F8000 1FFF80FFFF80078000078000078000078000078000078000078000078000078000078000 07800007800007800007804007804007804007804007804007804007804003C08001C080 00E100003E0012257FA417>I<07800780FF80FF80FF80FF800F800F8007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780078007800780078007800F8007800F800380178001C027 C000E047FC003F87FC1E1A7F9921>I121 D E /Fk 15 117 df<0003FC0000001FFF8000007E07E00000F801F00001F000F80003E0 007C0007C0003E000F80001F000F80001F001F00000F801F00000F803F00000FC03F0000 0FC03F00000FC07E000007E07E000007E07E000007E07E000007E07E000007E0FE000007 F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0 FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE 000007F0FE000007F0FE000007F0FE000007F07E000007E07E000007E07E000007E07E00 0007E07F00000FE03F00000FC03F00000FC03F00000FC01F00000F801F80001F800F8000 1F000F80001F0007C0003E0003E0007C0001F000F80000F801F000007E07E000001FFF80 000003FC000024397DB72B>48 D73 D<000001FF80000000001FFFF8000000007F00FE00000001F8001F80000007 F0000FE000000FC00003F000001F800001F800003F000000FC00007E0000007E0000FC00 00003F0001FC0000003F8003F80000001FC007F00000000FE007F00000000FE00FF00000 000FF00FE000000007F01FE000000007F81FC000000003F83FC000000003FC3FC0000000 03FC3FC000000003FC7FC000000003FE7F8000000001FE7F8000000001FE7F8000000001 FEFF8000000001FFFF8000000001FFFF8000000001FFFF8000000001FFFF8000000001FF FF8000000001FFFF8000000001FFFF8000000001FFFF8000000001FFFF8000000001FFFF 8000000001FF7F8000000001FE7FC000000003FE7FC000000003FE7FC000000003FE7FC0 00000003FE3FC000000003FC3FE000000007FC1FE000000007F81FE000000007F80FF000 00000FF00FF00000000FF007F00000000FE007F80000001FE003F80000001FC001FC0000 003F8000FE0000007F00007F000000FE00003F000000FC00001F800001F800000FE00007 F0000007F0000FE0000001FC003F800000007F00FE000000001FFFF80000000001FF8000 00383D7BBB43>79 DI82 D<000FF80060003FFF006000FFFFC0E001F807E1 E007E000F1E00F80003BE00F00001FE01F00000FE03E000007E03E000003E07C000001E0 7C000001E0FC000001E0FC000000E0FC000000E0FC000000E0FC00000060FE00000060FE 00000060FF000000607F000000007F800000007FE00000003FF80000003FFF8000001FFF F800000FFFFF800007FFFFE00003FFFFF80001FFFFFC0000FFFFFE00003FFFFF000007FF FF8000007FFFC0000007FFE00000007FE00000001FF00000000FF000000007F000000007 F800000003F840000003F8C0000003F8C0000001F8C0000001F8C0000001F8E0000001F8 E0000001F8E0000001F0F0000001F0F0000003F0F8000003E0F8000003E0FC000007C0FF 00000F80FB80000F00F1F0003E00F0FE00FC00E03FFFF800C00FFFE000C001FF8000253D 7BBB30>I<3FFFFFFFFFFFF83FFFFFFFFFFFF83FFFFFFFFFFFF83FE001FF8007F83F0000 FF0001F87C0000FF00007C780000FF00003C780000FF00003C700000FF00001C700000FF 00001C600000FF00000C600000FF00000C600000FF00000C600000FF00000C600000FF00 000CE00000FF00000EC00000FF000006C00000FF000006C00000FF000006C00000FF0000 06000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000 000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000 0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000 00FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000 FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF 000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00 0000000000FF000000000000FF000000000000FF000000000000FF000000000003FFC000 00001FFFFFFFF800001FFFFFFFF800001FFFFFFFF800373B7DBA3E>I<003FC0000001FF F8000007C07E00000E001F00001E000F80001F8007C0003FC003E0003FC003F0003FC003 F0003FC001F0001F8001F8000F0001F800000001F800000001F800000001F800000001F8 0000001FF8000007FFF800003FF9F80000FF01F80003F801F80007F001F8000FC001F800 1F8001F8003F8001F8007F0001F8007F0001F8007E0001F80CFE0001F80CFE0001F80CFE 0001F80CFE0003F80CFE0003F80C7E0006F80C7F0006F80C3F000C7C181F80187E380FE0 703FF003FFE01FE0007F800F8026287CA62B>97 D<0003FE00001FFFC0003E01F000F800 3801F0003C03E000FC07C001FE0FC001FE0F8001FE1F8001FE3F0000FC3F0000787F0000 007F0000007E0000007E000000FE000000FE000000FE000000FE000000FE000000FE0000 00FE000000FE000000FE0000007E0000007F0000007F0000003F0000033F0000031F8000 031F8000060FC0000607C0000C03E0001801F0003000F800E0007E03C0001FFF000003FC 0020287DA626>99 D<0003FC0000001FFF0000007E07C00000F801E00001E000F00003E0 00780007C0007C000F80003E001F80003E001F00003F003F00001F003F00001F007F0000 1F007E00001F807E00001F80FE00001F80FE00001F80FFFFFFFF80FFFFFFFF80FE000000 00FE00000000FE00000000FE00000000FE000000007E000000007E000000007F00000000 7F000000003F000001803F000001801F800001800F800003000FC000030007C000060003 E0000C0001F00018000078007000003F01E000000FFF80000001FE000021287EA626> 101 D<00003F000001FFC00003E0E0000781F0000F83F8001F07F8003E07F8007E07F800 7E03F0007C01E000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC000000FC000000FC000000FC0000FFFFFC00FFFFFC00FF FFFC0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC000001FE00007FFFFC007FFFFC007FFFFC001D3D7FBC1A >I<01F800000000FFF800000000FFF800000000FFF80000000007F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F807F8000001F81FFE 000001F8781F000001F8E00F800001F98007C00001FB0007E00001FB0003E00001FE0003 F00001FC0003F00001FC0003F00001FC0003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00003FC0007F800FFFFF1FFFFE0FFFFF1FFFFE0FFFFF1FF FFE02B3C7EBB30>104 D<01F807F80000FFF81FFE0000FFF8781F0000FFF8E00F800007 F98007C00001FB0007E00001FB0003E00001FE0003F00001FC0003F00001FC0003F00001 FC0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001 F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001 F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001 F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00003 FC0007F800FFFFF1FFFFE0FFFFF1FFFFE0FFFFF1FFFFE02B267EA530>110 D<03F00F80FFF03FE0FFF070F0FFF0C1F807F183F801F303F801F603F801F601F001F600 4001FC000001FC000001FC000001FC000001F8000001F8000001F8000001F8000001F800 0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 0001F8000001F8000001F8000001F8000001F8000001F8000001F8000003FC0000FFFFF8 00FFFFF800FFFFF8001D267EA522>114 D<001800000018000000180000001800000018 000000380000003800000038000000380000007800000078000000F8000000F8000001F8 000003F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8018001F8018001F8018001F8 018001F8018001F8018001F8018001F8018001F8018000F8018000F8030000FC0300007C 0300003E0600001F0C00000FF8000003F00019367EB421>116 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 557 209 a Fk(The)29 b(POR)-7 b(TS0)28 b(In)n(terface)665 356 y Fj(The)20 b(POR)-5 b(TS)20 b(Consortium)846 480 y(V)-5 b(ersion)19 b(0.3)768 540 y(Jan)n(uary)h(27,)f(1995)237 727 y Fi(The)12 b(POR)l(TS)h(\(POrtable)e(RunTime)g(System\))f(group)j (w)o(as)g(established)e(to)i(address)164 788 y(the)j(problems)g(of)g (constructing)h(a)g(common)e(run)o(time)f(system)h(to)i(b)q(e)g(used)f (as)i(a)f(com-)164 848 y(piler)h(target)i(for)g(v)m(arious)g(task-)g (and)g(data-parallel)g(languages.)33 b(One)19 b(result)g(of)h(this)164 908 y(group's)e(e\013orts)g(is)f(the)g(de\014nition)g(of)g(an)h (applications)f(programming)f(in)o(terface,)g(the)164 968 y(POR)l(TS)k(lev)o(el-zero)e(in)o(terface)g(\(POR)l(TS0\).)33 b(This)20 b(in)o(terface)e(comprises)g(ligh)o(t)o(w)o(eigh)o(t)164 1028 y(thread)g(functions)f(and)i(a)e(core)h(set)f(of)h(reen)o(tran)o (t)f(library)g(routines.)25 b(This)17 b(rep)q(ort)h(de-)164 1089 y(scrib)q(es)e(the)g(POR)l(TS0)h(in)o(terface.)p eop %%Page: 2 2 2 1 bop 164 15 a Fh(Con)n(ten)n(ts)164 124 y Fg(1)45 b(In)n(tro)r(duction)1243 b(1)164 233 y(2)45 b(Initialization)17 b(and)i(Sh)n(utdo)n(wn)872 b(1)237 294 y Fi(2.1)50 b Ff(ports0)p 508 294 16 2 v 17 w(init\(\))37 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(1)237 354 y(2.2)50 b Ff(ports0)p 508 354 V 17 w(shutdown\()o(\))11 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)103 b Fi(2)164 463 y Fg(3)45 b(Thread)19 b(Managemen)n(t)1039 b(2)237 523 y Fi(3.1)50 b(Thread)17 b(Con)o(trol)34 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)64 b Fi(2)349 583 y(3.1.1)56 b Ff(ports0)p 664 583 V 17 w(threadatt)o(r)p 940 583 V 15 w(init\(\))30 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(3)349 643 y(3.1.2)56 b Ff(ports0)p 664 643 V 17 w(threadatt)o(r)p 940 643 V 15 w(destroy\(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(3)349 703 y(3.1.3)56 b Ff(ports0)p 664 703 V 17 w(threadatt)o(r)p 940 703 V 15 w(setstacksiz)o(e\(\))15 b Fe(:)25 b(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)103 b Fi(3)349 764 y(3.1.4)56 b Ff(ports0)p 664 764 V 17 w(threadatt)o(r)p 940 764 V 15 w(getstacksiz)o(e\(\))15 b Fe(:)25 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(3)349 824 y(3.1.5)56 b Ff(ports0)p 664 824 V 17 w(thread)p 837 824 V 16 w(create\(\))41 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(4)349 884 y(3.1.6)56 b Ff(ports0)p 664 884 V 17 w(thread)p 837 884 V 16 w(exit\(\))16 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h (:)f(:)103 b Fi(4)349 944 y(3.1.7)56 b Ff(ports0)p 664 944 V 17 w(thread)p 837 944 V 16 w(yield\(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(4)349 1004 y(3.1.8)56 b Ff(ports0)p 664 1004 V 17 w(thread)p 837 1004 V 16 w(self\(\))16 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(4)349 1065 y(3.1.9)56 b Ff(ports0)p 664 1065 V 17 w(thread)p 837 1065 V 16 w(equal\(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(4)349 1125 y(3.1.10)32 b Ff(ports0)p 664 1125 V 17 w(thread)p 837 1125 V 16 w(once\(\))16 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(5)237 1185 y(3.2)50 b(Thread-sp)q(eci\014c)17 b(Data)36 b Fe(:)25 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)64 b Fi(5)349 1245 y(3.2.1)56 b Ff(ports0)p 664 1245 V 17 w(thread)p 837 1245 V 16 w(key)p 931 1245 V 17 w(create\(\))23 b Fe(:)i(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(5)349 1305 y(3.2.2)56 b Ff(ports0)p 664 1305 V 17 w(thread)p 837 1305 V 16 w(key)p 931 1305 V 17 w(delete\(\))23 b Fe(:)i(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(6)349 1366 y(3.2.3)56 b Ff(ports0)p 664 1366 V 17 w(thread)p 837 1366 V 16 w(setspecifi)o(c\()o(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)103 b Fi(6)349 1426 y(3.2.4)56 b Ff(ports0)p 664 1426 V 17 w(thread)p 837 1426 V 16 w(getspecifi)o(c\()o(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(6)237 1486 y(3.3)50 b(Mutual)16 b(Exclusion)g(and)h(Sync)o (hronization)35 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)64 b Fi(6)349 1546 y(3.3.1)56 b Ff(ports0)p 664 1546 V 17 w(mutexattr)p 914 1546 V 15 w(init\(\))16 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(7)349 1606 y(3.3.2)56 b Ff(ports0)p 664 1606 V 17 w(mutexattr)p 914 1606 V 15 w(destroy\(\))15 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(7)349 1667 y(3.3.3)56 b Ff(ports0)p 664 1667 V 17 w(mutex)p 811 1667 V 16 w(init\(\))42 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(7)349 1727 y(3.3.4)56 b Ff(ports0)p 664 1727 V 17 w(mutex)p 811 1727 V 16 w(destroy\(\))41 b Fe(:)25 b(:)f(:)h(:)f(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(8)349 1787 y(3.3.5)56 b Ff(ports0)p 664 1787 V 17 w(mutex)p 811 1787 V 16 w(lock\(\))42 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(8)349 1847 y(3.3.6)56 b Ff(ports0)p 664 1847 V 17 w(mutex)p 811 1847 V 16 w(trylock\(\))41 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(8)349 1907 y(3.3.7)56 b Ff(ports0)p 664 1907 V 17 w(mutex)p 811 1907 V 16 w(unlock\(\))29 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)103 b Fi(8)349 1967 y(3.3.8)56 b Ff(ports0)p 664 1967 V 17 w(condattr)p 889 1967 V 15 w(init\(\))42 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(8)349 2028 y(3.3.9)56 b Ff(ports0)p 664 2028 V 17 w(condattr)p 889 2028 V 15 w(destroy\(\))41 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(8)349 2088 y(3.3.10)32 b Ff(ports0)p 664 2088 V 17 w(cond)p 785 2088 V 17 w(init\(\))d Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:) f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(9)349 2148 y(3.3.11)32 b Ff(ports0)p 664 2148 V 17 w(cond)p 785 2148 V 17 w(destroy\(\))c Fe(:)c(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(9)349 2208 y(3.3.12)32 b Ff(ports0)p 664 2208 V 17 w(cond)p 785 2208 V 17 w(wait\(\))d Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(9)349 2268 y(3.3.13)32 b Ff(ports0)p 664 2268 V 17 w(cond)p 785 2268 V 17 w(signal\(\))15 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(9)349 2329 y(3.3.14)32 b Ff(ports0)p 664 2329 V 17 w(cond)p 785 2329 V 17 w(broadcast)o(\(\))15 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)103 b Fi(9)977 2630 y(ii)p eop %%Page: 3 3 3 2 bop 164 7 a Fg(4)45 b(Reen)n(tran)n(t)19 b(Library)1075 b(10)237 67 y Fi(4.1)50 b Ff(ports0)p 508 67 16 2 v 17 w(malloc\(\))23 b Fe(:)i(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(10)237 128 y(4.2)50 b Ff(ports0)p 508 128 V 17 w(realloc\(\))36 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(10)237 188 y(4.3)50 b Ff(ports0)p 508 188 V 17 w(calloc\(\))23 b Fe(:)i(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)79 b Fi(10)237 248 y(4.4)50 b Ff(ports0)p 508 248 V 17 w(free\(\))37 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(10)237 308 y(4.5)50 b Ff(ports0)p 508 308 V 17 w(open\(\))37 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(11)237 368 y(4.6)50 b Ff(ports0)p 508 368 V 17 w(close\(\))11 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(11)237 429 y(4.7)50 b Ff(ports0)p 508 429 V 17 w(read\(\))37 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(11)237 489 y(4.8)50 b Ff(ports0)p 508 489 V 17 w(write\(\))11 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(11)237 549 y(4.9)50 b Ff(ports0)p 508 549 V 17 w(lseek\(\))11 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(11)237 609 y(4.10)26 b Ff(ports0)p 508 609 V 17 w(fstat\(\))11 b Fe(:)24 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(12)237 669 y(4.11)26 b Ff(ports0)p 508 669 V 17 w(reentrant)p 758 669 V 15 w(lock\(\))19 b Fe(:)24 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(12)237 729 y(4.12)26 b Ff(ports0)p 508 729 V 17 w(reentrant)p 758 729 V 15 w(unlock\(\))43 b Fe(:)25 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)79 b Fi(12)970 2630 y(iii)p eop %%Page: 1 4 1 3 bop 164 15 a Fh(1)83 b(In)n(tro)r(duction)164 125 y Fi(The)15 b(POR)l(TS)h(lev)o(el-zero)c(in)o(terface)i(\(called)g(POR) l(TS0\))i(comprises)e(a)h(set)g(of)g(functions)164 185 y(for)23 b(ligh)o(t)o(w)o(eigh)o(t)d(thread)j(managemen)o(t)d(and)k (for)f(reen)o(tran)o(t)e(memory)f(managemen)o(t)164 245 y(and)f(\014le)e(I/O.)h(The)g(thread)g(managemen)o(t)e(routines)i(are)g (mo)q(deled)f(after)h(a)h(subset)f(of)164 306 y(the)h(POSIX)f(thread)h (in)o(terface,)f(while)g(the)h(reen)o(tran)o(t)f(functions)h(are)g(mo)q (deled)f(after)164 366 y(standard)d(C)e(library)g(routines.)20 b(This)14 b(set)f(of)g(functions)h(is)f(the)g(\014rst)h(set)f(of)h (functions)f(to)164 426 y(b)q(e)e(agreed)g(up)q(on)h(b)o(y)f(the)f(POR) l(TS)h(\(POrtable)g(RunTime)e(System\))g(group)j(as)g(necessary)164 486 y(parts)17 b(of)f(a)h(complete)d(run)o(time)g(system)h(for)h (parallel)g(languages)h(and)g(to)q(ols.)237 546 y(This)24 b(do)q(cumen)o(t)e(brie\015y)h(describ)q(es)g(the)g(POR)l(TS0)h(in)o (terface.)42 b(More)23 b(informa-)164 607 y(tion)g(on)g(the)f(POR)l(TS) h(group)g(can)g(b)q(e)g(found)g(on)g(the)g(W)l(orld)f(Wide)g(W)l(eb)h (at)g(URL)164 667 y Ff(http://www)o(.cs)o(.u)o(ore)o(gon)o(.ed)o(u/)o (par)o(aco)o(mp)o(/po)o(rts)o Fi(.)39 b(An)23 b(implem)o(en)o(tation)d (of)k(the)164 727 y(POR)l(TS0)e(in)o(terface,)e(whic)o(h)g(w)o(as)i (join)o(tly)e(dev)o(elop)q(ed)g(at)h(Argonne)h(National)f(Lab)q(o-)164 787 y(ratory)f(and)g(California)f(Institute)f(of)i(T)l(ec)o(hnology)l (,)f(is)g(a)o(v)m(ailable)g(b)o(y)g(anon)o(ymous)g(ftp)164 847 y(from)c Ff(ftp://ftp.)o(mcs)o(.an)o(l.g)o(ov)o(/pu)o(b/p)o(or)o (ts)p Fi(.)164 1014 y Fh(2)83 b(Initialization)27 b(and)g(Sh)n(utdo)n (wn)164 1123 y Fi(POR)l(TS0)19 b(pro)o(vides)f(an)h(initialization)e (and)i(a)g(sh)o(utdo)o(wn)g(routine.)28 b(These)18 b(functions)164 1183 y(should)c(b)q(e)g(called)f(b)q(efore)h(and)g(after)g(an)o(y)g (other)f(POR)l(TS0)i(routines)f(are)g(used,)g(resp)q(ec-)164 1244 y(tiv)o(ely)l(.)237 1304 y(An)o(y)c(program)h(that)g(uses)g(POR)l (TS0)h(functions)e(m)o(ust)g(include)f(the)i(\014le)f(\\)p Ff(ports0.h)p Fi(".)164 1364 y(This)k(\014le)f(con)o(tains)g(functions) h(protot)o(yp)q(es)g(and)g(sym)o(b)q(ol)e(de\014nitions)i(for)g(the)f (POR)l(TS0)164 1424 y(in)o(terface.)164 1569 y Fd(2.1)70 b Fc(ports0)p 511 1569 19 2 v 24 w(init\(\))164 1661 y Ff(int)25 b(ports0_in)o(it)o(\(in)o(t)e(*argc,)574 1721 y(char)h(**argv[],)574 1781 y(char)g(*package_id)o(\))237 1895 y Fi(Initialize)19 b(the)j(POR)l(TS0)g(library)l(.)37 b(This)22 b(function)f(m)o(ust)f(b)q(e)i(called)f(b)q(efore)h(an)o(y) 164 1956 y(other)16 b(POR)l(TS0)h(functions)g(are)f(called.)237 2016 y(The)24 b(v)m(alue)f(zero)g(is)g(returned)g(if)g(initialization)f (is)i(successful,)g(and)g(nonzero)g(is)164 2076 y(returned)16 b(if)f(initialization)g(fails.)237 2136 y(The)j(argumen)o(ts)f(in)h Ff(argc)e Fi(and)j Ff(argv)d Fi(are)i(scanned)g(b)o(y)g Ff(ports)p 1446 2136 16 2 v 16 w(init\(\))p Fi(,)e(and)j(an)o(y)164 2196 y(argumen)o(ts)12 b(that)i(are)f(recognized)f(b)o(y)h(POR)l(TS0)h (will)e(b)q(e)h(remo)o(v)o(ed)e(b)o(y)h(mo)q(difying)g Ff(argc)164 2257 y Fi(and)17 b Ff(argv)p Fi(.)237 2317 y(The)h Ff(package)p 524 2317 V 16 w(id)e Fi(string)i(is)f(used)h(as)g (a)g(pre\014x)f(to)h(all)f(POR)l(TS0)h(argumen)o(ts.)24 b(F)l(or)164 2377 y(example,)11 b(if)h Ff(package)p 592 2377 V 16 w(id)f Fi(is)i(\\fo)q(o",)h(then)f(eac)o(h)f(POR)l(TS)h (argumen)o(ts)e(either)h(will)f(b)q(egin)164 2437 y(with)18 b(\\-fo)q(o)p 384 2437 15 2 v 19 w(")h(or)g(will)e(b)q(e)i(p)q (ositioned)g(b)q(et)o(w)o(een)e(\\-fo)q(o")k(and)e(\\-fo)q(o)p 1448 2437 V 19 w(end")g(argumen)o(ts.)979 2630 y(1)p eop %%Page: 2 5 2 4 bop 164 7 a Fi(Hence,)14 b(an)i(argumen)o(t)e(to)i(sp)q(ecify)e (the)h(default)g(stac)o(k)g(size)g(can)g(b)q(e)h(sp)q(eci\014ed)f (either)f(as)164 67 y(\\-fo)q(o)p 271 67 15 2 v 19 w(stac)o(k)i(1024")i (or)f(\\-fo)q(o)h(-stac)o(k)e(1024)i(-fo)q(o)p 1070 67 V 19 w(end".)237 128 y(While)f(all)g(POR)l(TS)h(argumen)o(ts)e(will)h (ha)o(v)o(e)g(a)h Ff(package)p 1306 128 16 2 v 15 w(id)f Fi(pre\014x,)g(this)h(do)q(es)g(not)164 188 y(imply)j(that)j(all)f (argumen)o(ts)g(pre\014xed)f(b)o(y)h Ff(package)p 1193 188 V 16 w(id)g Fi(are)h(POR)l(TS0)g(argumen)o(ts.)164 248 y(Some)18 b(of)h(them)e(ma)o(y)g(b)q(e)i(for)g(the)g(system)e(that) i(is)g(using)g(POR)l(TS0.)29 b(Therefore,)19 b(not)164 308 y(all)14 b(argumen)o(ts)g(with)g(a)h Ff(package)p 799 308 V 16 w(id)f Fi(pre\014x)g(will)f(necessarily)h(b)q(e)g(remo)o (v)o(ed)f(from)g Ff(argc)164 368 y Fi(and)k Ff(argv)e Fi(when)h Ff(ports0)p 664 368 V 17 w(init\(\))e Fi(returns.)22 b(Only)15 b(those)i(argumen)o(ts)f(that)h(are)f(actu-)164 429 y(ally)i(recognized)f(b)o(y)h(POR)l(TS0)h(will)f(b)q(e)g(remo)o(v)o (ed.)25 b(The)19 b Ff(package)p 1448 429 V 16 w(id)e Fi(simply)g(allo)o(ws)164 489 y(POR)l(TS0)g(and)g(the)f(system)f(using) h(it)g(to)h(ha)o(v)o(e)e(consisten)o(t)h(argumen)o(t)f(naming.)164 633 y Fd(2.2)70 b Fc(ports0)p 511 633 19 2 v 24 w(shutdown\()q(\))164 725 y Ff(int)25 b(ports0_st)o(ar)o(t\(\))237 836 y Fi(Sh)o(ut)19 b(do)o(wn)g(the)f(POR)l(TS0)i(library)l(.)27 b(This)19 b(function)f(m)o(ust)g(b)q(e)g(called)g(b)q(efore)h(the)164 896 y(program)24 b(using)h(POR)l(TS0)g(terminates.)43 b(No)24 b(other)h(POR)l(TS0)f(functions)h(ma)o(y)d(b)q(e)164 956 y(called)15 b(after)h Ff(ports0)p 576 956 16 2 v 17 w(shutdown\()o(\))p Fi(.)237 1017 y(Return)g(zero)g(if)g(sh)o(utdo)o (wn)h(is)f(successful,)f(otherwise)h(nonzero.)164 1183 y Fh(3)83 b(Thread)27 b(Managemen)n(t)164 1292 y Fi(POR)l(TS0)13 b(threads)g(are)f(mo)q(deled)f(after)h(a)g(subset)h(of)g(POSIX)e (threads)i(\(IEEE)f(standard)164 1352 y(P1003.4a)17 b(draft)e(8\).)21 b(The)15 b(seman)o(tics)f(of)h(the)g(POR)l(TS0)g(routines)g(are)g(iden) o(tical)e(to)j(the)164 1412 y(corresp)q(onding)21 b(POSIX)f(thread)h (routines,)g(unless)f(otherwise)g(noted.)34 b(This)21 b(section)164 1473 y(brie\015y)h(describ)q(es)h(eac)o(h)g(of)g(the)g (POR)l(TS0)h(thread)f(routines.)42 b(Please)23 b(refer)f(to)i(the)164 1533 y(POSIX)16 b(thread)g(standard)i(for)e(more)f(details.)164 1677 y Fd(3.1)70 b(Thread)23 b(Con)n(trol)164 1769 y Fi(POR)l(TS0)17 b(pro)o(vides)f(the)g(follo)o(wing)f(functions)i(for)f (basic)g(thread)h(con)o(trol:)237 1880 y Fb(\017)24 b Ff(ports0)p 445 1880 V 16 w(threadattr)p 720 1880 V 15 w(init)p Fi(:)c(initialize)14 b(a)i(thread)h(attribute)237 1981 y Fb(\017)24 b Ff(ports0)p 445 1981 V 16 w(threadattr)p 720 1981 V 15 w(destory)p Fi(:)19 b(destro)o(y)d(a)g(thread)h (attribute)237 2082 y Fb(\017)24 b Ff(ports0)p 445 2082 V 16 w(threadattr)p 720 2082 V 15 w(setstacksi)o(ze)p Fi(:)29 b(set)22 b(the)g(stac)o(k)g(size)f(in)h(a)h(thread)f(at-)286 2142 y(tribute)237 2243 y Fb(\017)i Ff(ports0)p 445 2243 V 16 w(threadattr)p 720 2243 V 15 w(getstacksi)o(ze)p Fi(:)34 b(get)24 b(the)h(stac)o(k)f(size)f(from)h(a)g(thread)286 2303 y(attribute)237 2404 y Fb(\017)g Ff(ports0)p 445 2404 V 16 w(thread)p 617 2404 V 16 w(create)p Fi(:)19 b(create)d(a)h(thread)237 2505 y Fb(\017)24 b Ff(ports0)p 445 2505 V 16 w(thread)p 617 2505 V 16 w(exit)p Fi(:)c(terminate)14 b(the)i(curren)o(t)g(thread)979 2630 y(2)p eop %%Page: 3 6 3 5 bop 237 7 a Fb(\017)24 b Ff(ports0)p 445 7 16 2 v 16 w(thread)p 617 7 V 16 w(yield)p Fi(:)c(yield)15 b(the)h(pro)q (cessor)h(to)g(another)f(thread)237 109 y Fb(\017)24 b Ff(ports0)p 445 109 V 16 w(thread)p 617 109 V 16 w(self)p Fi(:)c(return)c(the)g(thread)h(ID)f(of)g(the)g(calling)g(thread)237 211 y Fb(\017)24 b Ff(ports0)p 445 211 V 16 w(thread)p 617 211 V 16 w(equal)p Fi(:)c(compare)15 b(t)o(w)o(o)h(thread)g(IDs)237 312 y Fb(\017)24 b Ff(ports0)p 445 312 V 16 w(thread)p 617 312 V 16 w(once)p Fi(:)c(for)d(dynamic)d(mo)q(dule)h (initialization)164 442 y Fg(3.1.1)55 b Ff(ports0)p 494 442 V 16 w(threadattr)p 770 442 V 15 w(init\(\))164 535 y(int)25 b(ports0_th)o(re)o(ada)o(ttr)o(_in)o(it)o(\(po)o(rts)o(0_)o (thr)o(ead)o(att)o(r_)o(t)e(*attr\))237 649 y Fi(Initialize)14 b Ff(attr)h Fi(to)h(ha)o(v)o(e)g(the)g(default)g(thread)g(attributes.) 237 709 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e (otherwise)i(nonzero.)164 839 y Fg(3.1.2)55 b Ff(ports0)p 494 839 V 16 w(threadattr)p 770 839 V 15 w(destroy\(\))164 931 y(int)25 b(ports0_th)o(re)o(ada)o(ttr)o(_de)o(st)o(roy)o(\(po)o(rt) o(s0_)o(thr)o(ead)o(at)o(tr_)o(t)e(*attr\))237 1045 y Fi(Destro)o(y)16 b(the)g(thread)h(attributes)f(ob)s(ject,)f Ff(attr)p Fi(.)237 1105 y(Return)h(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 1235 y Fg(3.1.3)55 b Ff(ports0)p 494 1235 V 16 w(threadattr)p 770 1235 V 15 w(setstacksiz)o(e\()o(\))164 1328 y(int)25 b(ports0_th)o(re)o(ada)o (ttr)o(_se)o(ts)o(tac)o(ksi)o(ze)o(\(po)o(rts)o(0_t)o(hr)o(ead)o(att)o (r_t)d(*attr,)1061 1388 y(size_t)i(stacksize)o(\))237 1502 y Fi(Set)16 b(the)g(stac)o(k)g(size)f(v)m(alue)h(in)g(the)g (thread)h(attributes)f(ob)s(ject,)f Ff(attr)p Fi(.)237 1562 y(Return)h(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)164 1692 y Fg(3.1.4)55 b Ff(ports0)p 494 1692 V 16 w(threadattr)p 770 1692 V 15 w(getstacksiz)o(e\()o(\))164 1785 y(int)25 b(ports0_th)o(re)o(ada)o(ttr)o(_ge)o(ts)o(tac)o(ksi)o(ze) o(\(po)o(rts)o(0_t)o(hr)o(ead)o(att)o(r_t)d(*attr,)1061 1845 y(size_t)i(*stacksiz)o(e\))237 1959 y Fi(Get)15 b(the)f(stac)o(k)h(size)f(v)m(alue)g(from)g(the)g(thread)h(attributes)g (ob)s(ject,)f Ff(attr)p Fi(,)f(and)i(place)164 2019 y(it)h(in)o(to)g (the)g(address)h(p)q(oin)o(ted)f(to)g(b)o(y)g Ff(stacksize)p Fi(.)237 2079 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e (otherwise)i(nonzero.)979 2630 y(3)p eop %%Page: 4 7 4 6 bop 164 7 a Fg(3.1.5)55 b Ff(ports0)p 494 7 16 2 v 16 w(thread)p 666 7 V 17 w(create\(\))164 100 y(typedef)23 b(void)h(*\(*ports0_t)o(hr)o(ead)o(_fu)o(nc)o(_t\))o(\(vo)o(id)e (*user_arg\);)164 220 y(int)j(ports0_th)o(re)o(ad_)o(cre)o(ate)o(\(p)o (ort)o(s0_)o(th)o(rea)o(d_t)d(*thread,)805 280 y(ports0_th)o(rea)o(dat) o(tr_)o(t)g(*attr,)805 340 y(void)i(*\(*func\)\(v)o(oid)e(*\),)805 400 y(void)i(*user_arg\))237 501 y Fi(Create)g(a)g(new)g(thread)f(that) i(in)o(v)o(ok)o(es)d(the)h(supplied)g(function)h Ff(func)e Fi(with)h(one)164 561 y(argumen)o(t)16 b Ff(user)p 490 561 V 17 w(arg)p Fi(.)23 b(The)17 b(thread)g(ID)g(for)g(the)g(newly)g (created)f(thread)h(is)g(placed)g(in)164 621 y Ff(thread)p Fi(.)27 b(The)20 b Ff(attr)d Fi(argumen)o(t)h(sp)q(eci\014es)h(the)g (attributes)g(for)g(the)g(thread.)30 b(Default)164 681 y(attributes)16 b(will)f(b)q(e)i(used)f(if)g Ff(attr)f Fi(is)h Ff(NULL)p Fi(.)237 741 y(Return)g(zero)g(if)g(successful,)f (otherwise)h(nonzero.)237 802 y(Note:)k(There)13 b(is)g(no)h(equiv)m (alen)o(t)e(to)i Ff(pthread)p 1093 802 V 15 w(join\(\))e Fi(in)h(POR)l(TS0.)21 b(All)12 b(POR)l(TS0)164 862 y(threads)i(are)f (automatically)f(detac)o(hed)h(when)h(they)f(are)g(created.)20 b(This)13 b(is)h(a)g(departure)164 922 y(from)h(POSIX)h(thread)g(seman) o(tics.)164 1050 y Fg(3.1.6)55 b Ff(ports0)p 494 1050 V 16 w(thread)p 666 1050 V 17 w(exit\(\))164 1142 y(void)24 b(ports0_thr)o(ead)o(_ex)o(it\()o(vo)o(id)e(*status\))237 1242 y Fi(T)l(erminate)12 b(the)i(calling)f(thread.)21 b(Returning)14 b(from)f(the)h(user)g(thread)g(function)g(will)164 1303 y(implicitl)o(y)f(terminate)h(the)i(thread.)237 1363 y(Note:)22 b(The)17 b Ff(status)e Fi(argumen)o(t)h(is)g(not)i (used,)f(since)f(POR)l(TS0)h(do)q(es)h(not)f(supp)q(ort)164 1423 y(an)g(equiv)m(alen)o(t)d(to)j Ff(pthread)p 708 1423 V 16 w(join\(\))p Fi(.)164 1551 y Fg(3.1.7)55 b Ff(ports0)p 494 1551 V 16 w(thread)p 666 1551 V 17 w(yield\(\))164 1643 y(void)24 b(ports0_thr)o(ead)o(_yi)o(eld)o(\(\))237 1744 y Fi(Yield)15 b(the)h(pro)q(cessor)h(to)g(another)g(thread.)164 1872 y Fg(3.1.8)55 b Ff(ports0)p 494 1872 V 16 w(thread)p 666 1872 V 17 w(self\(\))164 1964 y(ports0_thr)o(ead)o(_t)22 b(ports0_thr)o(ead)o(_se)o(lf)o(\(\))237 2064 y Fi(Return)16 b(the)g(thread)h(ID)f(of)g(the)g(calling)g(thread.)164 2192 y Fg(3.1.9)55 b Ff(ports0)p 494 2192 V 16 w(thread)p 666 2192 V 17 w(equal\(\))164 2285 y(int)25 b(ports0_th)o(re)o(ad_)o (equ)o(al\()o(po)o(rts)o(0_t)o(hr)o(ead)o(_t)d(t1,)779 2345 y(ports0_thr)o(ead)o(_t)g(t2\))237 2445 y Fi(Compare)16 b(the)g(t)o(w)o(o)g(thread)g(IDs)h Ff(t1)e Fi(and)i Ff(t2)p Fi(.)237 2505 y(Return)f(nonzero)h(if)e(the)h(threads)h(are)f(the)g (same,)f(otherwise)h(zero.)979 2630 y(4)p eop %%Page: 5 8 5 7 bop 164 7 a Fg(3.1.10)55 b Ff(ports0)p 522 7 16 2 v 16 w(thread)p 694 7 V 17 w(once\(\))164 100 y(ports0_thr)o(ead)o(_o)o (nce)o(_t)22 b(once_contro)o(l)g(=)k(PORTS0_TH)o(REA)o(D_O)o(NCE)o(_I)o (NIT)o(;)164 220 y(int)f(ports0_th)o(re)o(ad_)o(onc)o(e\(p)o(or)o(ts0)o (_th)o(re)o(ad_)o(onc)o(e_t)d(*once_cont)o(ro)o(l,)754 280 y(void)i(\(*init_ro)o(uti)o(ne\))o(\(\))e(\))237 394 y Fi(The)d(\014rst)g(call)e(to)i Ff(ports0)p 755 394 V 16 w(thread)p 927 394 V 17 w(once\(\))d Fi(b)o(y)i(an)o(y)g (thread)h(in)f(a)h(pro)q(cess,)h(with)164 454 y(a)h(giv)o(en)f Ff(once)p 448 454 V 17 w(control)p Fi(,)f(will)h(result)h(in)f(a)h (call)g(to)g(the)f(supplied)h Ff(init)p 1573 454 V 17 w(routine\(\))164 515 y Fi(with)d(no)i(argumen)o(ts.)27 b(Subsequen)o(t)18 b(calls)g(to)h Ff(ports0)p 1203 515 V 16 w(thread)p 1375 515 V 16 w(once\(\))e Fi(will)g(not)i(call)164 575 y(the)i Ff(init)p 360 575 V 17 w(routine\(\))p Fi(.)33 b(On)21 b(return)g(of)h Ff(ports0)p 1115 575 V 16 w(thread)p 1287 575 V 16 w(once\(\))d Fi(it)i(is)g(guaran)o(teed)164 635 y(that)15 b Ff(init)p 375 635 V 17 w(routine\(\))d Fi(has)j(completed.)j(The)d Ff(once)p 1177 635 V 17 w(control)d Fi(parameter)i(is)g(used)h(to)164 695 y(determine)f(whether)i(the)g (asso)q(ciated)h(initialization)d(routine)i(has)h(b)q(een)f(called.)237 755 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)164 900 y Fd(3.2)70 b(Thread-sp)r(eci\014c)21 b(Data)164 992 y Fi(POR)l(TS0)c(pro)o(vides)f(the)g(follo)o(wing)f (functions)i(for)f(thread-sp)q(eci\014c)g(data:)237 1106 y Fb(\017)24 b Ff(ports0)p 445 1106 V 16 w(thread)p 617 1106 V 16 w(key)p 711 1106 V 18 w(create)p Fi(:)19 b(create)c(a)i (thread-sp)q(eci\014c)f(data)h(k)o(ey)237 1208 y Fb(\017)24 b Ff(ports0)p 445 1208 V 16 w(thread)p 617 1208 V 16 w(key)p 711 1208 V 18 w(delete)p Fi(:)19 b(delete)c(a)h(thread-sp)q (eci\014c)g(data)i(k)o(ey)237 1310 y Fb(\017)24 b Ff(ports0)p 445 1310 V 16 w(thread)p 617 1310 V 16 w(setspecific)o Fi(:)30 b(asso)q(ciate)22 b(a)g(v)m(alue)g(with)g(a)g(thread-sp)q (eci\014c)286 1370 y(data)17 b(k)o(ey)237 1472 y Fb(\017)24 b Ff(ports0)p 445 1472 V 16 w(thread)p 617 1472 V 16 w(getspecific)o Fi(:)16 b(retriev)o(e)9 b(the)h(v)m(alue)h(asso)q (ciated)h(with)e(a)h(thread-)286 1532 y(sp)q(eci\014c)16 b(data)h(k)o(ey)164 1662 y Fg(3.2.1)55 b Ff(ports0)p 494 1662 V 16 w(thread)p 666 1662 V 17 w(key)p 761 1662 V 17 w(create\(\))164 1754 y(typedef)23 b(void)h(\(*ports0_th)o(re)o (ad_)o(key)o(_d)o(est)o(ruc)o(tor)o(_f)o(unc)o(_t\))o(\(vo)o(id)e (*value\);)164 1874 y(int)j(ports0_th)o(re)o(ad_)o(key)o(_cr)o(ea)o (te\()574 1935 y(ports0_thr)o(ead)o(_ke)o(y_)o(t)e(*key,)574 1995 y(void)h(\(*destructo)o(r_)o(fun)o(c\)\()o(voi)o(d*)o(\)\))237 2109 y Fi(Create)12 b(a)g(thread-sp)q(eci\014c)g(data)h(k)o(ey)e(that)h (is)g(visible)f(to)h(all)f(threads)i(in)f(the)f(pro)q(cess,)164 2169 y(and)17 b(place)e(that)i(k)o(ey)e(in)h(the)g Ff(key)f Fi(argumen)o(t.)237 2229 y(Although)g(the)f(same)f(k)o(ey)g(ma)o(y)g(b) q(e)h(used)g(b)o(y)g(di\013eren)o(t)f(threads,)i(the)f(v)m(alues)g(b)q (ound)164 2290 y(to)i(the)f(k)o(ey)f(b)o(y)i Ff(ports0)p 620 2290 V 16 w(thread)p 792 2290 V 16 w(setspecifi)o(c\(\))c Fi(are)j(main)o(tained)f(on)i(a)g(p)q(er-thread)164 2350 y(basis.)27 b(The)19 b(v)m(alue)f(asso)q(ciated)h(with)f(a)g(new)g(k)o (ey)f(is)h Ff(NULL)f Fi(in)h(all)g(activ)o(e)e(threads)j(and)164 2410 y(will)j(b)q(e)h(initialized)e(to)i Ff(NULL)f Fi(in)g(all)h (threads)g(that)h(are)f(subsequen)o(tly)f(created.)41 b(If)164 2470 y Ff(destructor)p 426 2470 V 15 w(func)22 b Fi(is)i(not)h Ff(NULL)p Fi(,)d(then)i(up)q(on)h(termination)d(of)i (the)g(thread)g(if)g(the)979 2630 y(5)p eop %%Page: 6 9 6 8 bop 164 7 a Fi(v)m(alue)16 b(for)g(this)g(k)o(ey)f(is)h(not)g Ff(NULL)p Fi(,)e(the)i(function)g(p)q(oin)o(ted)g(to)g(b)o(y)f Ff(destructor)p 1654 7 16 2 v 15 w(func)g Fi(is)164 67 y(called)g(with)h(the)g(curren)o(t)g(v)m(alue)g(for)g(the)g(k)o(ey)f (as)i(its)f(argumen)o(t.)237 128 y(Return)k(zero)g(up)q(on)h (successful)f(completion,)f(otherwise)h(nonzero.)33 b(A)20 b(return)g(of)164 188 y(EA)o(GAIN)15 b(indicates)g(that)i(the)f(k)o(ey) f(name)g(space)h(is)g(exhausted.)164 317 y Fg(3.2.2)55 b Ff(ports0)p 494 317 V 16 w(thread)p 666 317 V 17 w(key)p 761 317 V 17 w(delete\(\))164 409 y(int)25 b(ports0_th)o(re)o(ad_)o (key)o(_de)o(le)o(te\()o(por)o(ts)o(0_t)o(hre)o(ad_)o(ke)o(y_t)d(key\)) 237 516 y Fi(Delete)15 b(the)h(thread-sp)q(eci\014c)g(data)h Ff(key)p Fi(.)237 576 y(The)h(destructor)h(fuction)f(asso)q(ciated)h (with)f(this)g(k)o(ey)f(is)h Fa(not)h Fi(called.)26 b(Subsequen)o(t)164 636 y(use)16 b(of)h(this)f(k)o(ey)f(will)g(result)h(in)g(unde\014ned)g (b)q(eha)o(vior.)237 696 y(Return)g(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 825 y Fg(3.2.3)55 b Ff(ports0)p 494 825 V 16 w(thread)p 666 825 V 17 w(setspecif)o(ic\()o (\))164 918 y(int)25 b(ports0_th)o(re)o(ad_)o(set)o(spe)o(ci)o(fic)o (\(po)o(rt)o(s0_)o(thr)o(ead)o(_k)o(ey_)o(t)e(key,)933 978 y(void)h(*value\))237 1085 y Fi(Set)16 b(the)g(v)m(alue)g(asso)q (ciated)h(with)f(the)g(thread-sp)q(eci\014c)h(data)g Ff(key)e Fi(to)h Ff(value)p Fi(.)237 1145 y(Di\013eren)o(t)g(threads)g (ma)o(y)f(bind)h(di\013eren)o(t)g(v)m(alues)g(to)g(the)g(same)g(k)o(ey) l(.)237 1205 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e (otherwise)i(nonzero.)164 1334 y Fg(3.2.4)55 b Ff(ports0)p 494 1334 V 16 w(thread)p 666 1334 V 17 w(getspecif)o(ic\()o(\))164 1426 y(int)25 b(ports0_th)o(re)o(ad_)o(get)o(spe)o(ci)o(fic)o(\(po)o (rt)o(s0_)o(thr)o(ead)o(_k)o(ey_)o(t)e(key,)933 1486 y(void)h(**value\))237 1593 y Fi(Get)14 b(the)g(thread-sp)q(eci\014c)f (data)i(v)m(alue)f(asso)q(ciated)h(with)f Ff(key)p Fi(,)e(and)j(return) f(it)f(in)h(the)164 1653 y Ff(value)g Fi(argumen)o(t.)237 1714 y(Return)i(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)164 1857 y Fd(3.3)70 b(Mutual)22 b(Exclusion)g(and)i(Sync)n (hronization)164 1949 y Fi(Mutual)d(exclusion)g(and)h(sync)o (hronization)f(b)q(et)o(w)o(een)g(threads)g(are)h(pro)o(vided)f(b)o(y)g (the)164 2010 y(follo)o(wing)16 b(op)q(erations:)237 2106 y Fb(\017)24 b Ff(ports0)p 445 2106 V 16 w(mutexattr)p 695 2106 V 15 w(init)p Fi(:)c(initialize)14 b(a)j(m)o(utex)d(attribute) 237 2206 y Fb(\017)24 b Ff(ports0)p 445 2206 V 16 w(mutexattr)p 695 2206 V 15 w(destroy)p Fi(:)19 b(destro)o(y)d(a)h(m)o(utex)d (attribute)237 2305 y Fb(\017)24 b Ff(ports0)p 445 2305 V 16 w(mutex)p 591 2305 V 17 w(init)p Fi(:)c(initialize)13 b(a)k(m)o(utual)e(exclusion)g(lo)q(c)o(k)237 2405 y Fb(\017)24 b Ff(ports0)p 445 2405 V 16 w(mutex)p 591 2405 V 17 w(destroy)p Fi(:)18 b(destro)o(y)e(a)h(lo)q(c)o(k)237 2505 y Fb(\017)24 b Ff(ports0)p 445 2505 V 16 w(mutex)p 591 2505 V 17 w(lock)p Fi(:)c(obtain)c(a)h(m)o(utually)d(exclusiv)o(e)g(access)i(to)g(lo)q(c)o (k)979 2630 y(6)p eop %%Page: 7 10 7 9 bop 237 7 a Fb(\017)24 b Ff(ports0)p 445 7 16 2 v 16 w(mutex)p 591 7 V 17 w(trylock)p Fi(:)g(attempt)17 b(to)i(obtain)h(a)f(m)o(utually)d(exclusiv)o(e)h(access)286 67 y(to)g(lo)q(c)o(k)237 169 y Fb(\017)24 b Ff(ports0)p 445 169 V 16 w(mutex)p 591 169 V 17 w(unlock)p Fi(:)19 b(release)c(a)i(lo)q(c)o(k)237 271 y Fb(\017)24 b Ff(ports0)p 445 271 V 16 w(condattr)p 669 271 V 16 w(init)p Fi(:)19 b(initialize)14 b(a)j(condition)f(attribute)237 372 y Fb(\017)24 b Ff(ports0)p 445 372 V 16 w(condattr)p 669 372 V 16 w(destroy)p Fi(:)18 b(destro)o(y)e(a)h(condition)f(attribute) 237 474 y Fb(\017)24 b Ff(ports0)p 445 474 V 16 w(cond)p 565 474 V 17 w(init)p Fi(:)c(initialize)14 b(a)i(condition)g(v)m (ariable)237 576 y Fb(\017)24 b Ff(ports0)p 445 576 V 16 w(cond)p 565 576 V 17 w(destroy)p Fi(:)19 b(destro)o(y)d(a)g (condition)h(v)m(ariable)237 678 y Fb(\017)24 b Ff(ports0)p 445 678 V 16 w(cond)p 565 678 V 17 w(wait)p Fi(:)c(w)o(ait)c(for)g(a)h (condition)237 779 y Fb(\017)24 b Ff(ports0)p 445 779 V 16 w(cond)p 565 779 V 17 w(signal)p Fi(:)19 b(signal)e(a)f(condition) 237 881 y Fb(\017)24 b Ff(ports0)p 445 881 V 16 w(cond)p 565 881 V 17 w(broadcast)p Fi(:)18 b(signal)f(to)f(all)g(w)o(aiting)g (for)g(a)h(condition)164 1011 y Fg(3.3.1)55 b Ff(ports0)p 494 1011 V 16 w(mutexattr)p 744 1011 V 16 w(init\(\))164 1103 y(int)25 b(ports0_mu)o(te)o(xat)o(tr_)o(ini)o(t\()o(por)o(ts0)o (_m)o(ute)o(xat)o(tr_)o(t)d(*attr\))237 1217 y Fi(Initialize)14 b Ff(attr)h Fi(to)h(ha)o(v)o(e)g(the)g(default)g(m)o(utex)e (attributes.)237 1278 y(Return)i(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 1407 y Fg(3.3.2)55 b Ff(ports0)p 494 1407 V 16 w(mutexattr)p 744 1407 V 16 w(destroy\(\))164 1500 y(int)25 b(ports0_mu)o(te)o(xat)o(tr_)o(des)o (tr)o(oy\()o(por)o(ts)o(0_m)o(ute)o(xat)o(tr)o(_t)d(*attr\))237 1614 y Fi(Destro)o(y)16 b(the)g(m)o(utex)e(attributes)i(ob)s(ject,)g Ff(attr)p Fi(.)237 1674 y(Return)g(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 1804 y Fg(3.3.3)55 b Ff(ports0)p 494 1804 V 16 w(mutex)p 640 1804 V 17 w(init\(\))164 1896 y(int)25 b(ports0_mu)o(te)o(x_i)o(nit)o(\(po)o(rt)o(s0_)o(mut)o (ex)o(_t)d(*mutex,)728 1957 y(ports0_mut)o(ex)o(att)o(r_t)g(*attr\))237 2071 y Fi(Initialize)14 b(the)i(m)o(utual)f(exclusion)g(lo)q(c)o(k,)g Ff(mutex)p Fi(.)237 2131 y(The)23 b(attributes)g(for)g(the)g(m)o(utex)e (are)i(sp)q(eci\014ed)f(b)o(y)h Ff(attr)p Fi(.)40 b(Default)23 b(attributes)164 2191 y(will)d(b)q(e)i(used)f(if)g Ff(attr)f Fi(is)h Ff(NULL)p Fi(.)e(The)i(result)g(of)h(calling)e Ff(ports0)p 1439 2191 V 16 w(mutex)p 1585 2191 V 17 w(lock\(\))f Fi(or)164 2251 y Ff(ports0)p 323 2251 V 16 w(mutex)p 469 2251 V 17 w(unlock\(\))10 b Fi(on)j(a)h(m)o(utex)d(that)i(has)h (not)g(b)q(een)e(initialized)f(is)i(unde\014ned.)237 2312 y(Return)j(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)979 2630 y(7)p eop %%Page: 8 11 8 10 bop 164 7 a Fg(3.3.4)55 b Ff(ports0)p 494 7 16 2 v 16 w(mutex)p 640 7 V 17 w(destroy\(\))164 100 y(int)25 b(ports0_mu)o(te)o(x_d)o(est)o(roy)o(\(p)o(ort)o(s0_)o(mu)o(tex)o(_t)d (*mutex\))237 197 y Fi(Destro)o(y)16 b(the)g Ff(mutex)f Fi(that)h(w)o(as)h(initialized)d(with)i Ff(ports0)p 1341 197 V 16 w(mutex)p 1487 197 V 17 w(init\(\))p Fi(.)237 257 y(The)g(result)e(of)i(calling)f Ff(ports0)p 839 257 V 16 w(mutex)p 985 257 V 17 w(lock\(\))e Fi(or)j Ff(ports0)p 1386 257 V 16 w(mutex)p 1532 257 V 17 w(unlock\(\))c Fi(on)164 317 y(a)17 b(m)o(utex)d(that)i(has)h(b)q(een)f(destro)o(y)o (ed)g(is)g(unde\014ned.)237 377 y(Return)g(zero)g(up)q(on)h(successful) f(completion,)e(otherwise)i(nonzero.)164 505 y Fg(3.3.5)55 b Ff(ports0)p 494 505 V 16 w(mutex)p 640 505 V 17 w(lock\(\))164 597 y(int)25 b(ports0_mu)o(te)o(x_l)o(ock)o(\(po)o(rt)o(s0_)o(mut)o(ex) o(_t)d(*mutex\))237 694 y Fi(Blo)q(c)o(k)15 b(un)o(til)g(the)h(m)o (utual)f(exclusion)g(lo)q(c)o(k,)h Ff(mutex)p Fi(,)e(is)i(acquired.)237 755 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)164 882 y Fg(3.3.6)55 b Ff(ports0)p 494 882 V 16 w(mutex)p 640 882 V 17 w(trylock\(\))164 975 y(int)25 b(ports0_mu)o(te)o(x_t)o(ryl)o(ock)o(\(p)o(ort)o(s0_)o(mu)o(tex)o(_t)d (*mutex\))237 1072 y Fi(A)o(ttempt)14 b(to)j(acquire)e(the)h(m)o(utual) f(exclusion)g(lo)q(c)o(k,)g Ff(mutex)p Fi(.)237 1132 y(Returen)k(0)g(if)g(successful.)29 b(If)18 b Ff(mutex)f Fi(has)j(already)f(b)q(een)g(acquired,)g(then)g(do)g(not)164 1192 y(acquire)c(the)h(lo)q(c)o(k,)f(and)i(return)f(EBUSY.)164 1320 y Fg(3.3.7)55 b Ff(ports0)p 494 1320 V 16 w(mutex)p 640 1320 V 17 w(unlock\(\))164 1412 y(int)25 b(ports0_mu)o(te)o(x_u)o (nlo)o(ck\()o(po)o(rts)o(0_m)o(ut)o(ex_)o(t)e(*mutex\))237 1509 y Fi(Unlo)q(c)o(k)18 b(the)h(m)o(utual)f(exclusion)g(lo)q(c)o(k,)h Ff(mutex)p Fi(,)e(enabling)j(another)f(thread)h(to)f(ac-)164 1570 y(quire)c(the)h(m)o(utex.)237 1630 y(F)l(airness)e(in)g(lo)q(c)o (king)g(is)g(not)h(guaran)o(teed;)g(that)f(is,)g(a)h(thread)g(is)f(not) g(guaran)o(teed)h(to)164 1690 y(acquire)g(a)i(lo)q(c)o(k)f(if)f(other)i (threads)f(are)h(also)f(attempting)f(to)i(acquire)e(the)h(same)g(lo)q (c)o(k.)237 1750 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e (otherwise)i(nonzero.)164 1878 y Fg(3.3.8)55 b Ff(ports0)p 494 1878 V 16 w(condattr)p 718 1878 V 16 w(init\(\))164 1970 y(int)25 b(ports0_co)o(nd)o(att)o(r_i)o(nit)o(\(p)o(ort)o(s0_)o (co)o(nda)o(ttr)o(_t)d(*attr\))237 2067 y Fi(Initialize)14 b Ff(attr)h Fi(to)h(ha)o(v)o(e)g(the)g(default)g(condition)g (attributes.)237 2128 y(Return)g(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 2255 y Fg(3.3.9)55 b Ff(ports0)p 494 2255 V 16 w(condattr)p 718 2255 V 16 w(destroy\(\))164 2348 y(int)25 b(ports0_co)o(nd)o(att)o(r_d)o(est)o (ro)o(y\(p)o(ort)o(s0)o(_co)o(nda)o(ttr)o(_t)d(*attr\))237 2445 y Fi(Destro)o(y)16 b(the)g(condition)g(attributes)h(ob)s(ject,)e Ff(attr)p Fi(.)237 2505 y(Return)h(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)979 2630 y(8)p eop %%Page: 9 12 9 11 bop 164 7 a Fg(3.3.10)55 b Ff(ports0)p 522 7 16 2 v 16 w(cond)p 642 7 V 17 w(init\(\))164 100 y(int)25 b(ports0_co)o(nd)o(_in)o(it\()o(por)o(ts)o(0_c)o(ond)o(_t)d(*cond,)702 160 y(ports0_cond)o(at)o(tr_)o(t)h(*attr\))237 249 y Fi(Initialize)14 b(the)i(condition)g(v)m(ariable,)g Ff(cond)p Fi(.)237 309 y(The)i(attributes)f(for)h(the)f(condition)h(are)f(sp)q (eci\014ed)g(b)o(y)g Ff(attr)p Fi(.)24 b(Default)18 b(attributes)164 369 y(will)d(b)q(e)i(used)g(if)f Ff(attr)f Fi(is)h Ff(NULL)p Fi(.)e(The)j(result)f(of)h(calling)e(an)o(y)i(other)f Ff(ports0)p 1606 369 V 17 w(cond)p 1727 369 V 17 w(*\(\))164 429 y Fi(function)g(on)h(a)f(condition)g(that)h(has)g(not)g(b)q(een)f (initialized)e(is)i(unde\014ned.)237 490 y(Return)g(zero)g(up)q(on)h (successful)f(completion,)e(otherwise)i(nonzero.)164 616 y Fg(3.3.11)55 b Ff(ports0)p 522 616 V 16 w(cond)p 642 616 V 17 w(destroy\(\))164 709 y(int)25 b(ports0_co)o(nd)o(_de)o (str)o(oy\()o(po)o(rts)o(0_c)o(on)o(d_t)d(*cond\))237 798 y Fi(Destro)o(y)16 b(the)g(sp)q(eci\014ed)g(condition.)237 858 y(The)203 b(result)f(of)g(calling)g(an)o(y)g(other)164 918 y Ff(ports0)p 323 918 V 16 w(cond)p 443 918 V 17 w(*\(\))21 b Fi(function)h(on)h(a)f(condition)g(that)h(has)g(b)q(een)f (destro)o(y)o(ed)f(is)h(unde-)164 978 y(\014ned.)237 1039 y(Return)16 b(zero)g(up)q(on)h(successful)f(completion,)e (otherwise)i(nonzero.)164 1165 y Fg(3.3.12)55 b Ff(ports0)p 522 1165 V 16 w(cond)p 642 1165 V 17 w(wait\(\))164 1258 y(int)25 b(ports0_co)o(nd)o(_wa)o(it\()o(por)o(ts)o(0_c)o(ond)o(_t)d (*cond,)702 1318 y(ports0_mute)o(x_)o(t)h(*mutex\))237 1407 y Fi(A)o(tomically)16 b(release)j Ff(mutex)f Fi(and)i(w)o(ait)g (on)g Ff(cond)p Fi(.)30 b(When)19 b(the)h(function)f(returns,)164 1467 y Ff(mutex)14 b Fi(has)j(b)q(een)g(reacquired.)237 1527 y(If)g(the)h(thread)g(executing)f(the)g(function)h(has)h(not)f (acquired)f Ff(mutex)p Fi(,)f(the)h(result)h(is)164 1588 y(unde\014ned.)237 1648 y(Return)e(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 1775 y Fg(3.3.13)55 b Ff(ports0)p 522 1775 V 16 w(cond)p 642 1775 V 17 w(signal\(\))164 1867 y(int)25 b(ports0_co)o(nd)o(_si)o(gna)o(l\(p)o(or)o(ts0)o(_co)o (nd)o(_t)d(*cond\))237 1956 y Fi(Signal)17 b(the)f(sp)q(eci\014ed)h (condition,)f(w)o(aking)g(up)h(one)g(thread)g(that)g(is)g(susp)q(ended) g(on)164 2016 y(this)f(condition.)237 2076 y(If)g(no)h(threads)f(are)h (susp)q(ended)g(on)f(this)g(condition,)g(this)g(call)g(will)f(ha)o(v)o (e)g(no)i(e\013ect.)237 2137 y(Return)f(zero)g(up)q(on)h(successful)f (completion,)e(otherwise)i(nonzero.)164 2263 y Fg(3.3.14)55 b Ff(ports0)p 522 2263 V 16 w(cond)p 642 2263 V 17 w(broadcast\(\))164 2356 y(void)24 b(ports0_con)o(d_b)o(roa)o(dca)o(st)o(\(po)o(rts)o(0_)o (con)o(d_t)e(*cond\))237 2445 y Fi(Unsusp)q(end)17 b(all)f(threads)g (susp)q(ended)h(on)g(the)f(sp)q(eci\014ed)g(condition.)237 2505 y(Return)g(zero)g(up)q(on)h(successful)f(completion,)e(otherwise)i (nonzero.)979 2630 y(9)p eop %%Page: 10 13 10 12 bop 164 15 a Fh(4)83 b(Reen)n(tran)n(t)26 b(Library)164 125 y Fi(POR)l(TS0)18 b(pro)o(vides)g(a)g(set)f(of)i(functions)e(that)i (mirror)d(standard)j(C)f(library)f(routines.)164 185 y(These)f(routines)g(guaran)o(tee)h(the)f(follo)o(wing:)237 299 y Fb(\017)24 b Fa(R)n(e)n(entr)n(ancy)p Fi(:)c(Multiple)15 b(threads)h(can)h(call)e(these)h(routines)g(without)g(in)o(terfering) 286 360 y(with)g(eac)o(h)g(other.)237 461 y Fb(\017)24 b Fa(Nonblo)n(cking)p Fi(:)j(A)17 b(thread)h(that)g(calls)g(one)g(of)g (these)f(routines)h(is)g(guaran)o(teed)g(to)286 521 y(not)f(blo)q(c)o (k)e(other)i(threads)f(from)g(executing.)237 636 y(The)11 b(follo)o(wing)f(sections)h(brie\015y)f(describ)q(e)g(routines)h(that)g (are)g(pro)o(vided)f(b)o(y)h(POR)l(TS0.)164 696 y(Unless)17 b(otherwise)h(stated,)g(eac)o(h)g(is)g(iden)o(tical)e(to)i(the)g (underlying)f(C)i(library)e(routine)164 756 y(after)f(whic)o(h)g(the)g (POR)l(TS0)h(routine)f(is)g(named.)237 816 y(In)c(addition,)h(POR)l (TS0)g(exp)q(orts)g(a)g(lo)q(c)o(k)e(that)i(ma)o(y)e(b)q(e)h(used)h(to) g(con)o(trol)f(reen)o(trancy)164 876 y(in)57 b(non-POR)l(TS0)i (routines.)144 b(This)57 b(lo)q(c)o(k)g(is)g(manipulated)f(b)o(y)h(the) 164 937 y Ff(ports0)p 323 937 16 2 v 16 w(reentrant)p 573 937 V 15 w(lock\(\))14 b Fi(and)j Ff(ports0)p 1009 937 V 17 w(reentrant)p 1259 937 V 15 w(unlock\(\))c Fi(routines.)164 1081 y Fd(4.1)70 b Fc(ports0)p 511 1081 19 2 v 24 w(malloc\(\))164 1173 y Ff(void)24 b(*ports0_ma)o(llo)o(c\(s)o(ize)o(_t)e(bytes\))237 1287 y Fi(Allo)q(cate)16 b(mem)o(ory)l(,)d(lik)o(e)i Ff(malloc\(\))p Fi(.)164 1432 y Fd(4.2)70 b Fc(ports0)p 511 1432 V 24 w(realloc\(\))164 1524 y Ff(void)24 b(*ports0_re)o(all)o (co\()o(voi)o(d)e(*ptr,)i(size_t)g(bytes\))237 1638 y Fi(Reallo)q(cate)16 b(memory)l(,)d(lik)o(e)h Ff(realloc\(\))p Fi(.)164 1783 y Fd(4.3)70 b Fc(ports0)p 511 1783 V 24 w(calloc\(\))164 1875 y Ff(void)24 b(*ports0_ca)o(llc)o(o\(s)o(ize)o (_t)e(nobj,)i(size_t)f(bytes\))237 1989 y Fi(Allo)q(cate)16 b(mem)o(ory)l(,)d(lik)o(e)i Ff(calloc\(\))p Fi(.)164 2134 y Fd(4.4)70 b Fc(ports0)p 511 2134 V 24 w(free\(\))164 2226 y Ff(void)24 b(ports0_fre)o(e\(v)o(oid)e(*ptr\))237 2340 y Fi(F)l(ree)14 b(memory)l(,)d(lik)o(e)i Ff(free\(\))p Fi(.)18 b(The)d(memory)c(p)q(oin)o(ted)k(to)f(b)o(y)g Ff(ptr)g Fi(m)o(ust)f(ha)o(v)o(e)h(b)q(een)164 2400 y(previously)63 b(allo)q(cated)h(b)o(y)f Ff(ports0)p 974 2400 16 2 v 16 w(malloc\(\))p Fi(,)73 b Ff(ports0)p 1441 2400 V 16 w(realloc\(\))p Fi(,)f(or)164 2461 y Ff(ports0)p 323 2461 V 16 w(calloc\(\))p Fi(.)966 2630 y(10)p eop %%Page: 11 14 11 13 bop 164 7 a Fd(4.5)70 b Fc(ports0)p 511 7 19 2 v 24 w(open\(\))164 100 y Ff(int)25 b(ports0_op)o(en)o(\(ch)o(ar)d (*path,)574 160 y(int)j(flags,)574 220 y(int)g(mode\))237 334 y Fi(Op)q(en)18 b(a)g(\014le)f(descriptor,)g(lik)o(e)f Ff(open\(\))p Fi(.)23 b(All)16 b(\014le)h(descriptors)g(that)h(are)g (passed)g(to)164 394 y(other)e(POR)l(TS0)h(library)f(routines)g(m)o (ust)f(b)q(e)h(op)q(ened)h(using)g Ff(ports0)p 1484 394 16 2 v 16 w(open\(\))p Fi(.)164 539 y Fd(4.6)70 b Fc(ports0)p 511 539 19 2 v 24 w(close\(\))164 631 y Ff(int)25 b(ports0_cl)o(os)o (e\(i)o(nt)d(fd\))237 745 y Fi(Close)16 b(a)h(\014le,)e(lik)o(e)g Ff(close\(\))p Fi(.)164 890 y Fd(4.7)70 b Fc(ports0)p 511 890 V 24 w(read\(\))164 982 y Ff(int)25 b(ports0_re)o(ad)o(\(in)o (t)e(fd,)574 1042 y(char)h(*buf,)574 1102 y(int)h(nbytes\))237 1217 y Fi(Read)16 b(from)g(a)g(\014le,)f(lik)o(e)g Ff(read\(\))p Fi(.)237 1277 y(Note:)k(Instead)12 b(of)h(blo)q(c)o(king)f (inde\014nitely)l(,)e(this)j(routine)f(ma)o(y)e(return)j(an)f(error)h (with)164 1337 y Ff(errno)h Fi(set)j(to)f(EINTR.)164 1481 y Fd(4.8)70 b Fc(ports0)p 511 1481 V 24 w(write\(\))164 1574 y Ff(int)25 b(ports0_wr)o(it)o(e\(i)o(nt)d(fd,)600 1634 y(char)i(*buf,)600 1694 y(int)g(nbytes\))237 1808 y Fi(W)l(rite)16 b(to)g(a)h(\014le,)e(lik)o(e)f Ff(write\(\))p Fi(.)237 1868 y(Note:)19 b(Instead)12 b(of)h(blo)q(c)o(king)f (inde\014nitely)l(,)e(this)j(routine)f(ma)o(y)e(return)j(an)f(error)h (with)164 1929 y Ff(errno)h Fi(set)j(to)f(EINTR.)164 2073 y Fd(4.9)70 b Fc(ports0)p 511 2073 V 24 w(lseek\(\))164 2165 y Ff(int)25 b(ports0_ls)o(ee)o(k\(i)o(nt)d(fd,)600 2226 y(off_t)i(offset,)600 2286 y(int)g(whence\))237 2400 y Fi(Mo)o(v)o(e)13 b(the)i(o\013set)g(within)f(a)h(\014le)f(for)h (subsequen)o(t)f(reads)h(and)g(writes,)f(lik)o(e)f Ff(lseek\(\))p Fi(.)966 2630 y(11)p eop %%Page: 12 15 12 14 bop 164 7 a Fd(4.10)70 b Fc(ports0)p 545 7 19 2 v 25 w(fstat\(\))164 100 y Ff(int)25 b(ports0_fs)o(ta)o(t\(i)o(nt)d (fd,)600 160 y(struct)h(stat)h(*buf\))237 274 y Fi(Get)16 b(information)g(ab)q(out)h(a)g(\014le,)e(lik)o(e)f Ff(fstat\(\))p Fi(.)164 418 y Fd(4.11)70 b Fc(ports0)p 545 418 V 25 w(reentrant)p 849 418 V 26 w(lock\(\))164 511 y Ff(int)25 b(ports0_re)o(en)o(tra)o(nt_)o(loc)o(k\()o(\))237 625 y Fi(Acquire)15 b(the)h(POR)l(TS0)h(reen)o(trancy)e(lo)q(c)o(k.)164 769 y Fd(4.12)70 b Fc(ports0)p 545 769 V 25 w(reentrant)p 849 769 V 26 w(unlock\(\))164 862 y Ff(int)25 b(ports0_re)o(en)o(tra)o (nt_)o(unl)o(oc)o(k\(\))237 976 y Fi(Release)15 b(the)h(POR)l(TS0)h (reen)o(trancy)f(lo)q(c)o(k.)966 2630 y(12)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF