(original) (raw)

%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: master.dvi %%Pages: 14 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Helvetica-Bold CMSY6 Helvetica CMTT9 CMR6 Times-Bold %%+ CMR9 CMBX9 CMTI9 Times-Roman Times-Italic CMSY9 CMMI9 CMITT10 CMEX10 %%+ CMR5 CMMI6 CMCSC10 CMBX8 CMTT8 CMR8 CMBX6 CMBXTI10 CMSSBX10 CMSS9 %%+ MSBM10 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o master.ps -P generic master %DVIPSParameters: dpi=2540, compressed %DVIPSSource: TeX output 2003.04.12:0314 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin @defspecial /XYdict where not{250 dict /XYdict exch def /xy{mark exch XYdict begin countdictstack /xylevel exch def xyopen xycolor mark xypatt xypattern stopped xyclose end cleartomark}def /xyg{gsave xy}def /xyf{currentfont exch xy grestore setfont}def /xycc{{xychgcol}xy}def /xyc{XYdict begin xycolstore end}def /xyx{/xyYpos exch def /xyXpos exch def}def /xyp{currentpoint xyx}def /xyd{setupDirection XYdirection 2 mul}def /xyct{currentpoint xyt 2 copy 6 2 roll}def /xyt{xyXpos xyYpos 2 copy translate}def /xyr{neg rotate xynt}def /xyrs{neg rotate 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def /xynt{neg exch neg exch translate}def /xys{scale xynt}def /xyss{scale 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def /xyi{0 0 transform grestore gsave itransform}def }if /XYdict where pop begin XYdict begin /xyopen{currentdict /XYddict known{XYddict null eq{} {XYddict begin xyopen}ifelse}if}def /xyclose{countdictstack -1 xylevel 1 add{pop end}for}def /xychgcol{/xycolor exch def}def /xysetcol{xypush xychgcol}def /xypush{16 dict /XYddict exch def XYddict begin}def /undef where {pop /xypop{countdictstack xylevel eq{}{end}ifelse currentdict /XYddict undef}def} {/xypop{countdictstack xylevel eq{}{end}ifelse /XYddict null def}def}ifelse /pu /xypush load def /pp /xypop load def /xypspt{72 72.27 div dup scale}bind def /pscorrect{.85 mul}bind def /gstartxy{gsave xypspt xywidth xycap xyjoin xymiter newpath 0 0 moveto}def /xypath{gstartxy rmoveto counttomark 2 idiv -1 1{pop lineto}for}def /xystroke{stroke grestore}bind def /xyfill{closepath fill grestore}bind def /xystfil{closepath gsave fill grestore 0 setgray 0 setlinewidth xystroke}bind def /xyeofill{closepath eofill grestore}bind def /xypolyline{xypath xystroke}def /xypolyfill{xypath xyfill}def /xydotsep{/@ currentlinewidth 2 mul def}def /xypolydot{xypath xydotsep [xydt @] 0 setdash xystroke}def /xypolydash{xypath xydotsep [@ @] 0 setdash xystroke}def /xypolyeofill{xypath xyeofill}def /pe /xypolyeofill load def /pl /xypolyline load def /pf /xypolyfill load def /pt /xypolydot load def /pd /xypolydash load def /arc4pop{arcto 4{pop}repeat}bind def /xyoval{gstartxy oval closepath xystroke}def /xycircle{gstartxy circle xystroke}def /circle{dup 0 moveto 0 0 3 -1 roll 0 360 arc}def /oval{newpath 2 copy exch 5 index add 2 div exch 3 copy 10 3 roll moveto 1 index dup 5 1 roll 3 index 7 index arc4pop dup dup 4 1 roll 4 index exch 6 index arc4pop 1 index dup 8 1 roll 4 index 4 index arc4pop arc4pop closepath}def /xyellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if circle xystroke}def /ov /xyoval load def /ox /xyellipse load def /dotit{dup currentlinewidth 6 mul div round div /@ exch def [xydt @] 0 setdash}def /elldash{dup 4 -1 roll 10 exch div dashit}def /ovdash{dup 10 dashit}def /dashit{div round 2 mul div /@ exch def [@ @] 0 setdash}def /dotcirc{gstartxy cirlen dotit circle xystroke}def /dashcirc{gstartxy cirlen dashit circle xystroke}def /dotoval{gstartxy 5 copy ovlen dotit oval xystroke}def /dashoval{gstartxy 5 copy ovlen ovdash oval xystroke}def /cirlen{dup 6.283185 mul}bind def /ovlen{3 -1 roll sub 3 1 roll sub add exch 1.716815 mul sub}def /dotellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if cirlen dotit circle closepath xystroke}def /dashellipse{gstartxy counttomark 1 gt{squarify add 2 div 1} {1 exch 1 exch}ifelse cirlen elldash circle xystroke}def /ot /dotellipse load def /od /dashellipse load def /vt /dotoval load def /vd /dashoval load def /filloval{gstartxy oval xyfill}def /stfiloval{gstartxy oval xystfil}def /fillcircle{gstartxy circle xyfill}def /stfilcircle{gstartxy circle xystfil}def /fillellipse{gstartxy squarify pop pop 1 circle xyfill}def /stfilellipse{gstartxy squarify pop pop 1 circle xystfil}def /squarify{4 copy sub 2 div 3 1 roll sub 2 div translate add 2 div 3 1 roll add 2 div 2 copy scale 2 copy add 2 div currentlinewidth exch div setlinewidth newpath}def /fe /fillellipse load def /sfe /stfilellipse load def /fo /filloval load def /sfo /stfiloval load def /fc /fillcircle load def /sfc /stfilcircle load def /xywidth{.4 pscorrect setlinewidth}bind def /xydash{[] 0 setdash}bind def /xycap{1 setlinecap}bind def /xyjoin{1 setlinejoin}bind def /xymiter{10 setmiterlimit}bind def /cc{dup exec xychgcol}def /lw{dup setlinewidth /@l exch def /xywidth{@l setlinewidth}bind def}def /lc{dup setlinecap /@c exch def /xycap{@c setlinecap}bind def}def /lj{dup setlinejoin /@j exch def /xyjoin{@j setlinejoin}bind def}def /ml{dup setmitrelimit /@m exch def /xymiter{@m setmitrelimit}bind def}def /setupDirection{dup -2048 lt{3072 add neg 1024 exch} {dup 0 lt{1024 add neg -1024}{dup 2048 lt{1024 sub -1024 exch} {3072 sub 1024}ifelse}ifelse}ifelse atan dup 180 gt{360 sub}if dup /XYdirection exch def rotate}def userdict begin /gray{setgray}bind def /gray@{setgray}bind def /rgb{setrgbcolor}bind def /rgb@{setrgbcolor}bind def /hsb{sethsbcolor}bind def /hsb@{sethsbcolor}bind def /setcmykcolor where{pop}{/setcmykcolor{dup 3 1 roll dup 5 1 roll exch sub 1 add 5 1 roll exch sub 1 add 4 1 roll exch sub 1 add 3 1 roll setrgbcolor}bind def}ifelse /cmyk{setcmykcolor}bind def /cmyk@{setcmykcolor}bind def /sethalftone where{/sethalftone load /tone exch def}if /xycolarray 3 array def /xycolstore{currentrgbcolor 2 -1 0 {exch xycolarray 3 1 roll put}for}def xycolstore /xycolor{0 1 2{xycolarray exch get}for setrgbcolor}def /xypatt{}def /xypattern{cleartomark}bind def end end end /XYdict where pop begin XYdict begin /:patt {XYddict begin 14 dict begin /BGnd exch def /FGnd exch def /PaintData exch def /PatternType 1 def /PaintType 1 def /BBox[0 0 1 1]def /TilingType 1 def /XStep 1 def /YStep 1 def /PatternMtx[24 0 0 24 0 0]def /PaintProc BGnd null ne {{begin BGnd aload pop setrgbcolor 0 0 1 1 rF FGnd aload pop setrgbcolor 24 24 true PatternMtx PaintData imagemask end}} {{begin FGnd aload pop setrgbcolor 24 24 true PatternMtx PaintData imagemask end}} ifelse def currentdict PatternMtx end gsave patangle xyland{180 add}if rotate macfreq patfreq div dup neg exch scale matrix currentmatrix grestore gsave setmatrix /DeviceRGB setcolorspace makepattern grestore end}def /rF{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto fill grestore}bind def /setpatscreen{/pattstring exch store patfreq patangle xyport not{90 add}if {1 add 4 mul cvi pattstring exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}setscreen}bind def /setcolpattern{setpatscreen 64 div 1 exch sub currentrgbcolor 1 1 3{pop 1 exch sub 3 index mul 1 exch sub 3 1 roll}for setrgbcolor pop}def /setgraypattern{setpatscreen 64 div setgray}def /macfreq 9.375 def /patangle 0 def /patfreq 12.5 def /checkland{/normland where{pop normland not}{false}ifelse /xyland exch def /por where{pop por}{/isls where{pop isls not /xyland true def} {/land where{pop land not}{true} ifelse}ifelse}ifelse /xyport exch def}def /setpatfreq{/patfreq exch def}def /setpatangle{/patangle exch def}def /setbackcolor{/backcolor exch def}def /setforecolor{/forecolor exch def}def [1 1 1] setbackcolor xycolarray setforecolor /bg /setbackcolor load def /fg /setforecolor load def /pa /setpatangle load def /pq /setpatfreq load def /xypattern{checkland counttomark dup 0 eq{pop} {dup 1 eq{pop setpatscreen} {dup 2 eq{pop setcolpattern} {dup 3 eq{pop /setcolorspace where { /.setcolorspace where{pop pop pop setcolpattern} {/.buildpattern where {pop forecolor backcolor :patt setpattern }{pop pop setcolpattern}ifelse}ifelse} {pop setcolpattern}ifelse} {5 eq{/setcolorspace where{ /.setcolorspace where{pop pop pop pop pop setcolpattern} {/.buildpattern where {pop :patt setpattern }{pop pop pop pop setcolpattern}ifelse}ifelse} {pop pop pop setcolpattern}ifelse }{}ifelse}ifelse}ifelse}ifelse}ifelse cleartomark }def /xysetpattern{/xypatt exch def}def /sp /xysetpattern load def end end /XYdict where pop begin XYdict begin /xysize 10 def /T true def /F false def /dimendiv{65536 div}bind def /xysegl 327680 dimendiv def /xyopp{1 -1 scale}bind def /xynormwidth{26213 dimendiv pscorrect}bind def /xywidth{xynormwidth setlinewidth}bind def /xyfont{4096 add 64 div round 64 mul 4096 sub}def /xydt 0.01 def /xysdfont{4096 add 32 div round 32 mul 4096 sub}def /xydots{xywidth 1 setlinecap [xydt 2] 0 setdash}bind def /f /xyfont load def /fs /xysdfont load def /xyCheckDir{dup 8 div 3 mul 3 -1 roll sub neg exch div 360 mul dup dup XYdirection sub 180 div round 180 mul XYdirection add dup 3 -1 roll sub abs 10 gt not{exch}if pop}def /xyrulth{26213 dimendiv pscorrect setlinewidth 0 setlinecap}bind def /gsavexy{gsave xypspt XYdirection rotate xywidth newpath 0 0 moveto}def /gchksavexy{gsave xypspt setupDirection xywidth newpath 0 0 moveto}def /xyswap{XYdirection 180 add /XYdirection exch def}def /xyline{gstartxy setupDirection rlineto xystroke}def /dash{exch gchksavexy xysegl XYdirection dup -90 lt{pop neg}{90 gt{neg}if}ifelse exch{neg}if 0 rlineto xystroke}def /stopper{gstartxy setupDirection 0 xysegl 2 div rmoveto 0 xysegl neg rlineto xystroke }def /d /dash load def /st /stopper load def /solid{gstartxy xydash neg exch neg exch rlineto xystroke}def /dashed{gstartxy 2 copy dup mul exch dup mul add sqrt dup xysegl add xysegl 2 mul div round 2 mul 1 sub div [ exch dup ] 0 setdash neg exch neg exch rlineto xystroke}def /l /solid load def /dd /dashed load def /dot{gstartxy 2 setlinecap [xydt 2] 0 setdash 1 0 rlineto xystroke}def /dotted{gstartxy 2 copy dup mul exch dup mul add sqrt dup 2 div round 1 add div 2 setlinecap [xydt 3 -1 roll] 0 setdash neg exch neg exch rlineto 0 0 rlineto xystroke}def /p /dot load def /dt /dotted load def /cubic{gstartxy docubic} def /docubic{chkvalid {chkcubedge 8 -2 roll moveto curveto xystroke pop} {cleartomark grestore}ifelse}def /chkcubedge{2 copy 1.0 eq{0.0 eq{pop pop}{cubicedge}ifelse} {pop cubicedge}ifelse}def /bz /cubic load def /dotcubic{gstartxy 1 setlinecap [xydt 2] 0 setdash docubic}def /dashcubic{gstartxy [5 5] 0 setdash docubic}def /bt /dotcubic load def /bd /dashcubic load def /squine{gstartxy dosquine}def /dosquine{chkvalid {chksquedge 2 copy moveto xysq2cub curveto xystroke pop} {cleartomark grestore}ifelse}def /q /squine load def /chkvalid{2 copy lt{dup 1 gt{false}{true}ifelse}{false}ifelse}def /chksquedge{2 copy 1.0 eq{0.0 eq{pop pop}{squineedge}ifelse} {pop squineedge}ifelse}def /xysq2cub{xysq2cubit 6 1 roll xysq2cubit 6 1 roll 3 index 3 index xysq2cubit 6 1 roll xysq2cubit 6 1 roll pop pop}def /xysq2cubit{2 index 2 mul add 3 div}def /dotsquine{gstartxy 1 setlinecap [xydt 2] 0 setdash dosquine}def /dashsquine{gstartxy [5 5] 0 setdash dosquine}def /qt /dotsquine load def /qd /dashsquine load def /xy4mul{8 copy 5 -1 roll mul 5 1 roll 6 -1 roll mul 6 1 roll 3 -1 roll mul exch 4 -1 roll mul 3 1 roll add 3 1 roll add exch 10 2 roll 7 -1 roll mul 7 1 roll 4 -1 roll mul 5 1 roll 4 -1 roll mul 4 1 roll mul add 3 1 roll add exch 3 -1 roll }def /xy44mul{4 copy 16 4 roll exch 3 1 roll 4 copy 12 4 roll xy4mul 12 4 roll xy4mul 12 -4 roll 4 copy 16 4 roll 8 4 roll xy4mul 12 4 roll xy4mul}def /cubicedge{10 2 roll exch 8 1 roll 3 -1 roll dup dup 9 2 roll 5 -1 roll dup dup 9 1 roll 8 3 roll 4 1 roll dup dup 5 3 roll dup dup 5 1 roll 3 -1 roll 18 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll xy444mul pop pop pop 13 1 roll pop pop pop 9 1 roll 10 1 roll pop 8 1 roll 7 1 roll 8 1 roll pop 5 1 roll 3 1 roll}def /xy444mul{4 copy 24 4 roll 12 -4 roll 16 4 roll 4 copy 16 4 roll xy44mul 20 8 roll xy44mul 12 -4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch 4 2 roll 16 8 roll 8 4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch 4 2 roll 8 4 roll 16 4 roll 8 4 roll 20 -4 roll exch 3 1 roll 4 copy 20 4 roll 4 copy 16 4 roll 4 copy 12 4 roll xy4mul 28 4 roll xy4mul 20 4 roll xy4mul 12 4 roll xy4mul}def /squineedge{8 2 roll exch 5 1 roll 3 -1 roll dup 6 2 roll 1 index exch 10 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll xy44mul 4 1 roll pop 5 1 roll 6 1 roll 3 -1 roll pop}def /xyshort{2 copy abs exch abs add xysegl .5 mul lt {pop pop grestore}{rlineto xystroke}ifelse}def /tipwidth{xywidth xynormwidth dup currentlinewidth exch div sqrt dup dup scale mul setlinewidth 1 setlinecap}def /halftip{tipwidth xysize 10 div 0 0 moveto -.25 0 3 -1 roll -2.5 mul 0 xysize 2 div neg dup .62 mul 2 div neg curveto}bind def /atip{gchksavexy halftip xystroke}def /btip{gchksavexy xyopp halftip xystroke}def /tip{gchksavexy gsave halftip stroke grestore xyopp halftip xystroke}def /t /tip load def /a /atip load def /b /btip load def /cmatip{gchksavexy halfcmtip xystroke}def /cmbtip{gchksavexy xyopp halfcmtip xystroke}def /cmtip{gchksavexy gsave halfcmtip stroke grestore xyopp halfcmtip xystroke}def /halfcmtip{tipwidth 0 0 moveto -.1333 0 .25 neg dup .125 3 -1 roll .25 curveto}bind def /ct /cmtip load def /ca /cmatip load def /cb /cmbtip load def /xyfscale{/xyfsize exch def}def /xyfsize{10}def /eu{-0.0551 0.0643 -0.0976 0.1386 -0.125 0.2188}def /cm{-0.105 0.0437 -0.1804 0.1380 -0.2 0.25}def /XY{-0.1753 0.0181 -0.3452 0.0708 -0.5 0.155}def /tipstart{3 -1 roll gchksavexy exch xyfscale tipwidth dup XYdict exch known{dup /xy eq{pop /XY}if}{pop /XY}ifelse XYdict exch get}def /tipend{halfxytip xystroke}def /halfxytip{1 1 6{pop xyfsize mul 6 1 roll}for 0 0 moveto curveto}def /A{tipstart D}def /B{tipstart C}def /C{xyopp D}def /D{exec tipend}def /AB{tipstart dup gsave exec halfxytip stroke grestore C}def /Tip{exch gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch known{dup /xy eq{pop /XT}if}{pop /XT}ifelse XYdict exch get dup halfTip stroke grestore xyopp halfTip xystroke}def /XT{360 32 div neg}def /Xt{-1 .31 mul 1 atan}def /ET{360 64 div 5 mul neg}def /Et{-1 .31 mul 1 atan}def /halfTip{exec rotate XY halfxytip}def /halfTtip{halfTip}def /Ttip{exch gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch known{dup /xy eq{pop /Xt}if}{pop /Xt}ifelse XYdict exch get dup halfTtip stroke grestore xyopp halfTtip xystroke}def /tt /Tip load def /tT /Ttip load def /halfturn{xysegl 2 div dup dup neg exch rmoveto 0 exch dup exch -180 -90 arc}bind def /aturn{gchksavexy halfturn xystroke}def /bturn{gchksavexy xyopp halfturn xystroke}def /ta /aturn load def /tb /bturn load def /xysqll 231705 dimendiv def /squigl{gchksavexy xysqll dup neg 0 rmoveto 2 div dup dup neg dup 3 -1 roll 2 sqrt mul dup 5 1 roll 135 45 arcn dup 3 -1 roll -135 -45 arc xystroke}def /g /squigl load def /fullhook{0 xysegl 2 div dup -90 90 arcn}bind def /halfhook{xysegl 2 div dup 0 exch 180 90 arcn}bind def /ahook{gchksavexy fullhook xystroke}def /bhook{gchksavexy xyopp fullhook xystroke}def /hook{gchksavexy gsave halfhook stroke grestore xyopp halfhook xystroke}def /h /hook load def /ha /ahook load def /hb /bhook load def /xyqcirc{dup dup neg exch translate newpath dup neg 0 exch moveto 0 0 3 -1 roll -90 0 arc}bind def /circ{gstartxy 3 copy pop 2 copy cos mul 3 1 roll sin mul rmoveto 0 0 5 2 roll arc xystroke}bind def /o /circ load def /circhar{gsave dup 3 gt{7 sub neg}if dup 3 eq{pop dup 2 sqrt -2 div mul}{dup 1 eq{pop dup 2 sqrt 2 div mul} {0 eq{dup}{0}ifelse}ifelse}ifelse 0 translate 3 1 roll circ grestore}bind def /c /circhar load def end end @fedspecial end %%BeginFont: CMTT8 %!PS-AdobeFont-1.1: CMTT8 1.0 %%CreationDate: 1991 Aug 20 16:46:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 33 /exclam put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 67 /C put dup 69 /E put dup 70 /F put dup 73 /I put dup 76 /L put dup 78 /N put dup 79 /O put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 91 /bracketleft put dup 93 /bracketright put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 125 /braceright put readonly def /FontBBox{-5 -232 545 699}readonly def /UniqueXX 5000830 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be533de8dbe3ccd493ef4c9656d5d5b76d531 9e704539dd76b065f45e6d6f62ec499c9ab91923a364237ef75e1d62d52df3a9 43713cbc63b16c1880feedd1633766248fed9d060ff709951f2ec84ecdc06bbd 9cc4a865e1f275455525e5ac7e2e6289615e98cf7ce3763b6914d3a4c5b75b29 b8043dbd898ccd5be448064cf1af2f80f969a44b4f9b801c42f6d6a6d0c3ff42 e0b1cff748c1fc49b598eadde0c2802dd591c54b802ffd24cb7a7639295713d5 4e639514ac78460672c9c51742ae2014e4137ba4303051c06f686395aaef86c9 9d7f9a97009436c2ff55b770de3e80cef0d53f4df46aacecc21632c0c676e2f5 ca7bb101a239a0ff67ebd37a6b8c4c8246dc2c90b759dc03fb26bde8f134f552 23ef3d6496aa0c4a2d7b6398de6e6a0474ee1b0d78b2d865614609f1db92fc56 4ab5921078b4944e11a2162902f0e04f4b29448aaa22b4ea92fac48f8dc47535 d717dc7acd08b25d391c97c6c540ae0a98be5d6a8da564ab73e8b5d3b5e1989d 6e25c3a35ea44d596b5fd6b2373b30de7d59c1831245edb76d6a67816ab91a80 a27a6597c6dfd274db8b3e45cb01aedee59ba6efa1428e41ed557f051012a389 9b195ea44a4e4d0067398d9d40ea26195efbffd2cf785540bbeb8964f6391361 904fa5e187e4af3baeb4e8cbe7558fb7049c94a1769a2ff0b44f679bf6f14d8a 974bb8bdc734077371d2d1b09e1a5c2fa63222c67f004f7dc18ec42bff9736e8 04079c457059bcaf6c180ebab7ad3b0f93c0a843143600b18f6f2b7853a05cf3 97493d825b14c2fe7db788ace9408790c928501f123f9041610206d020115cad 3243f145df5577a91772a69c8edec1ce5b6ba16d583c83696f25a3a3061ba431 3196743b117ad89a3712fa486dceb117b99fd90039a656083a9c78eb5402b547 a08ddc567d4b415085f205b0b18c3971650f0333613a1b5574f4af15c31750ec 88c2919ba61d2f3ffa87f739b32db77e1dc66060f8098a148a9c5d94a4ef8b35 7be2b7538de6747dcb7d649ad1302b8a091a84d8e86bbdf0c31a4b5bf39b17c2 058cbbebbc8fd662502af726dcbac462acbd6729b5874e5bc8fa6e3a324f83e6 ee2e3be50e630ebb68e91a78fc0d20ea1af91130f96818342fdaa5d67abe6744 96414ecd1f8e16047921b913eb4af7a3bb7fc11c949666e3ae286d97d84ee3d4 82392a3cd2197a5746ea650ee34167aa9e3c8bdf722bb47abb2e10eef7da6ea9 8392902ff1398bb7c84bed9a65dc388fd7b2cf3bc5bd30cacb5cf21888b59b1b b5db0e9cac1b405e612a99f14f44da449e051b0267151184db7f0324200e4594 22c312402b3f30a7f7b706ef3803e5c0ef5d0b80248c4dd0ceb6223b7d791368 54a1e74201e6c6b9ad7b9838250af6c704baf3d13885f27dd762f2a1724d459b 2ae714d3d580d4d76b1fad9e8cb2eb33fde82914134a4b4df554b06a8a82b68c 0695472f25108d97454e098dc4aa9cee9c4fccf12813c6f557bba13c0bfd6d17 5b131c83c576c5186cdb0d9bfbb21d1aa47e501e5fe7b6ce46171a07a5d02f31 902be52c27cc2054fc1b24a86c34ec6ef25e5cec72db1862a473d09a40ad8153 8656cb2431a6d1010372f713d979e760c0003ef63b724cd39ed8a2344d579252 c33d33f24194d508a3d474e5dd82d30da97a4bfd52cb3a059732790be3ebe2fd 62858ad7c51862a4ffcc5c000631c4ac3c1d0c31021c28f8b0f092a69abb15e6 08e281d47cf2b52156b14b1a2c64d5b59ac69c5fb383b697acf4fcc5778865ac edadb47df18b15dabf350438aa2870237b5957aba49237078d6237f269d899cb 1c413803c258b5e4442c44deec8b441ac705625552cc4cf7c154b8771cb252df 5d854a3de831969309515915d3f8e9f5fcaf8cd2bbca66163aa38f9f0180732b 625cbc4b9ff6281f11e6e1cd06d3c0af6999311fc6d596976e6000e2ce381ce5 85095753d1d216196d33b84e3cc13f0fdc1030285c12e5d2067136dd8c824aaa c2e9189994a2ca17006d2125b04e8a07d630973eff9420c014898239967e7a9a 3a174161254c467bc5dfdc25d5222fbde5c299fb6f21653a06cdd9863be19d74 83da1f60c60d6732b90733a8fa294f142fddbd375ff04bac01051d283aa38e7e 4baad2f6d20bf049221f98ca11d0cc7824285c8b1fed9fa3835065f96cfbb60c 7ed17d4b32db686758ce31519a3cb9cf34e87e24a11e9d0ef185423b28c85ed8 cc1e9fe38dd9f26f33e0758924179a9895efda298f597134bf8b97497895b1eb 0f75fb2039a20f16999fa125a079c539e9aaca4ace639cf251492d350c2df3df d7c93d032f8c9b7e5d342e1d937d146f55f39df535e8963b274ff1b65736757e 8cc865687fbff15c859f4c3b2bb0e7cb8c0a60ffc24795b82482cae7c7a08707 098c0b56d90c89977439347b8e7f6a23efbf62dbfbf1d2e32ce68ce5cc3187b1 be5ee7ee60d8f43213d00be0d37c064e1a57cb4b8fcd8332b5f8807fc22104f5 a63e4df20294ad73ddb69c1b5dfc5df5ac87bd1c1f451058d4145dbd7976ed86 7c09b97531f15fb81949117b3b77dbdf89e865cb7a36f0a9909e3126d4450235 70e83ea1ea3a545bf06328ed8eaf1bed1471c46ebd5c8529492060f69a867683 559137ec3018344f5973f0101acfcc86313199885862ff7068c739e0536027b7 7aa52b34f86861b84bdffdd56ba0725eddce072e3854278e9f97140224eff193 e164d9f3849beae364ff4109dfa72ef5935fc6accdd24bdf884f8ee7328f0a94 9b849903395b502a939df6f6bfefbed2bea1ba88f4808f5ebaf848291e098a8c 1853d802ed910e9e6274b6be072ea64b631b87a97661c95ad01fccb725db0ee3 00703b00960bce933f6f596cee665526352ef117b0d7749e48851cb5491f3cff 12c549b2af421454785c0f6ac9a62858774b7a2b577132cf6f9cc43e161686c9 db6ffa8f0a8b462b09dfd3e8c6f04797dd34885616586bfed510ec1cc1ab785d 94f4dffa19409968cf08d10fd9dacff1d5581adbba3f1acc6475c5feadea8896 762025ca65f0857af94a7688ce1a05c4ac76f10f80880dacbc3b2f06610b0c12 cd1b80983b3691d22f94ea98a31e46eb5b50eefa450da042f1e75807a49c4e44 efc70862b1dfd50b4aa7d2aae950cd6ed7d4a7f768d2f11dd471e6d3f427587b ce84ff001591931986ee5891be85d98f5267f633f82b125167339052c723fa25 0aad90b9d707d4c4d40dbe7bfecc258df5956767127cc27ffcf67ca4f6dcc622 afbc7dd4962a16c15121ba8724e997a65cd0913235b3a0eba958913863b73a6f 742159e0ab41c0b95ff27625993d94b5fc30d05a51f2ba4887a09f3bc30b4076 7920b7e517bdd0382f99472218a086e87de8cdef1523a8834ac235cf229f8770 a8ab55e140ec284dbce0d17d034b57c2107a14e202b8e5210516eb6b868c399f a90133a9da3c757da2e9529931e649ab0cab300f8f987b8a8a9486ef7c97d3df 7574257ef00750db8459e5f667b51b708bc5ca7f3edbbec1888e0cb345c6cd00 c027814bc52d6d8078ec8c02c1a577480de41068d15de49e2386fb229a87eae6 b2cfb5631f4d134aaa8d90f82c05803ced0199eb58f96dccd7ae6628aefe034b 4d692bbb386a8002e9563208208630968d9d6d23a22909c05d1d15e03b08a3d0 7da2ba44f4098f87fdaaf3a78e2a1aacb69ea0a9b7eda6bbf5cba19e7922e014 ea56fe7538da9427f9c66dd0f70ded886e43d4db28d5dcd811ca0b0c74052ca5 21f00911e805d6e35e559b9c73d52e07ce060ad089c66d4a184a3f763c946c2e 640d9bcb99ae4c3d5f284c1487e52027135cf4bc78f6bf7ce10bfb6a7c09277b 6242c2fdfad4c0c1c92b5faf2a097e603af07e324ff01f0f6c9b1c8361f1476a 1fe2d4c8ab1414ce9ed32dbcf919376774124d19ece22ec80959c55c0d314d86 1b89cc7d0893a2685f473fcfbdfe92ad3c76c574162fc2bf434f5181672e753d 56a207d945597a5111480bebddebc3c871a5d889e81deac75bd25d514b5b4711 dfe0821975a662f4dffee88e83a2b28ad0483406f26930c223e3c1e6759831aa ea6c5066f8504c0d80d2fc384a1562f110cfd7bec18d37b8ce6db9dd4d93c49a a9015cda1df9b23aaee7b97003caafe546c3d173f70dee125b472b80e1a2f4c5 f3d739eeb45241e4dd5437dc8a42f66fc317aa290e509510d09cd932b251f385 ecca49a2724175c98df893f960a59329f377ed0f333c4861b3efdeee0ab34a5d 2062372ddbee30ea93530923875d1ed7b7cdc73c71fa5abe1f067bb74e36afd0 b4dae64c95d99946b3b6769e8a376718cea115c9151a3632307a40398e8727ec 82a40b3f321eda4cbab71397c4c2171b26f58da48f073d18d4d393d98f943d4e c44d515f642b6f7bf99503363554d7375707956b658eb15dbf7429a36cf9ca73 c2c07ff3574c032131344e73b82af26b283936d6c8839bab6ea9718831cb8c60 ba2f92ea70024f3aa2fb4999e5185fc483bdd5b47776b8869c7c522552ad6f64 07e2e07c7fe9e503752288d5c8f8f5a4b865c6afc721b75d96f8d49d1d2ca5a8 7156bcc4ee356113524a02e8e02e86ad30f8a06c4af85ed4b1f7563ba539d016 ffb8fa53864f767e74ef63089b7c452628b26fc9dd38e9db70d77045149e4256 dd37d1da16519f7b42f72e08b8cafefe95bfec255502cd36ebf29e1a7c68f64e d312e2d71d028c44039c1d4b039c580ff99dd545766aedeaff53d78370ea8a21 ff2b759abdf79b003307414ba0635d8bd1f3040edf98d777912b89b789674eb1 215f88867d76549b1f4b8acfe37487deff6df34b1910bfe9b74c0ebb9fbcfe7b aa03d14e722b6056db5c27fccca2f0205c161ab48dadcb890080f6ce170b9790 46d603dada0827c1a45341e823ce12777d1efd138bd3f3399f748e04a0047bc3 5e57904e6d317900121fb4fea820d482dbb126f8b8d32167909db639930760f1 65a9b8739c0d614ae7621662e8860c4179a3bad7b7d153099afe55e2462ca9e4 99ec68644d45f2ea580105d4fc46f13da28de45aab68b14ca1f77f8d199e702b 6c0938fe2198991ca885ccb9555a17b612ad109fbddde55a8c72b02e8a59309b 89248ddc7d3666bfed963f70124130559ba2cf4551326e5627a89a8c4dc91d73 8f561ca1e8867f93acf8f17122a577a42db00a4f149921d8afa103f68e9d3fdb 433f80fa452417a425ba63ff6bed226f709f6688869599c9b8f414d615e6a156 89f7969d56637f396e04cf1a26cebd11407c6e17e8a49973ae952289088561f0 f814694ff294a865adda84c93dedc14cf47c931ffd4820f45d4d0240debe8cb0 d55593750924f70fbd2e6837903b5893b40ec896197413f62439b3091e18e2a4 f99bf938ac4f5b392218ee7ef7a30893151c10f55ab919dddb2cc2bc10305dcf e1546402433799f11934822c02f54caf659f30e6901265508c01433a7a52ca7a daa958a59ea8bc64de3fafab14924858ce7de16fe80c3dac4caebd135ffc36e1 9557a707ad1e0ba0267878ae76ce8451ff863cf70816f38abae667d803acfa57 11fa78353398d7f372b2415f9566a8e6677210eff0efe746b43e72811a5e718e 6dad7676d4703251b1c5f39c58325c44f680f5ff9edf1639bd0443e78f33bd2f a70925dd8f53cf57dd15558c92fd124d89ca5024d456e5bede82971d4c36abf0 2d3ce19b199aba8350664db4f10e67bfec0611978b72c77c40e5a91f2064830c f28ce83f0cb0dbfb5a9aaa48a94a56dc890c64767e110308fc452702262e56df 698c509f3ac942ec99808a665ca08a433c39aeb41570a7c121b926160a6f1af5 48a2c9289a9cfb0c3293ea604d6810d5dcefd31d05348720576f071b30411436 5dc5debc26562484be3c86341858c3d267db6b625f57f6b91efb56522da8be8f 0b51f4ef5af982c8adf3b826d8f5f3354581347ab4a391c898718b5567f4ae9b 147089ab263f10bce70ca5d5aa3cff4e82afba67742eacad2d6630772923fc79 f1b0e73fbcc0f5d0f8f2bd8d96560ce5a0fa3735c872baa877afaa03cbe08f57 82304268a28cefccbe3aaebae05ac3f884ac74eacb1e3f4e3aee2a5883a101b4 dd00ea0f091f69a7a2bef5f2faa577322da9ca38eaea8b2f6704597ed2c8be9e a4548aeee2ff307429e3ef59f565ebc290131c24cc800ded93ecd5f63174d7cb 3c89ec40b708e1c862051ce6e9ebc7c07861c35364024d1b05290da8a26df504 1aeb058d1c068cb08063ea72db03a1e60a75bf8d798859b49d9048e3ce868fb1 a4c9c9f1d8dcd414f859e264cac9f8cdca28eafb58970194d86ba60bb26cfbf8 be41927675ba1f22b91449bb463c0d5158df5d1402bb8dbca998dfd3357490c9 05b3a009c2fe03d284cdd136de3df77fb6042cc093de14c148f868399dc17d9f 13e8d3f5b1fea5c8d3cf0ac2e115cacbbd8f56d4af3fe8e4c31212110c1835c9 add007bae6a63b140657edbda12e485632841973f63b44fabb483c77ffbe1dbd 077b0e1b2fe477a54e21792438be143a9b52b614eee5ca8c0b1b2ab9464b0de0 ec8f817c3e08a98311926b22e4d536e12f5df358c9ae237d2cfd5293c1a51f1c bd5908caeae95394ffd0a26232a3e523acdcd30a5680704c11dd4750efe8ce5b 565596b11046487d2a775385a28ebafcd0b4dfd045878ebf720267d395324b45 dfe054abf4f09197627d4cf4ceab8e085ba111300c793767bd017d05ffdd9205 5b0541af20640210083b432d8884b95c98826f25a50ba97797aa92838728969d 09adc9ec72cb453786a6c410432147d28c44fa9a17186a8b8e80f94c7c3f2643 e74b2281b5908d7776987f67d8c2bb5965437b2dcb58ecb12213838d11b3d717 68c6846909a47c4ff0e2b7082b69a4be8a2551ca8cc82c9bd4642a2d365bb7ed 034132c0737a421fb547ec8aefc7c94b0acac3016be1d12ff3d97f7c1d29b810 70d04f84bbe46b5b1e8e27a83c60293544ba9d7728e3566ecfa52bfa17faf9e4 dd801d7304de1a9a3bfe176eb6588f79dbf56d8af9d1f0eb51a3b52a17066c18 f6a2cecffc5cef2c86719d19bdd83d57b5f97654e932bad1a66320cd960cea92 95be27d643c327eeeaf883cea63f4a3defe7c48af39e428588cbb66a0c70fe84 40dd04e14818f91894d1268ebd9f47b1f2da6fac14b8b29c19b7aa99da62faa4 f0c8ba0173d79f0118f5bdbf1e20c7498a87da7daaf0c80bc291285be00a8c30 7a89d1c890589c10e56e5a668750b58865dfc3062a4c29b7af64b9d1d2ce9627 bb81d1275ebcdca4e802198482d4eabc098bdb4e6d3156ccca427af6c264088e 7741709c4e83ba7b6da81a83139671bbbe4c5fe8c9fb340d1f2fd668935f7072 7d7f3997031bfca230f9e2356f44bc1c5cb5f883658f4bf1c9916369013ca212 28018e96e3a5a528ef8971b944a28d5f0eb647f5378b5be63faa20820ec68503 e42d6acc94b4d9a7381e85400016353e82199fefb43d8994e86308fe23e30559 66491032e133f16b9b53a80d80791067a00db7cdb8d11bcdca652eeb12ebb859 ccfbccbcea2a6835a79f1d42d84a722e72f3a7c2ff5ec6de525778faf3d39ee8 110e646a518b3b66d2f66badc6ff78bc04889f2cb4af3e3c12c89f10ccd106f7 c6a0b8bda29d01e03b06330e7c19e776bf879d0591cc18bd769a456dbf13cea2 6e0baa22e428f221cbe169b060f4d35116e10788e0ee236825db7cab9b1142e5 4370f964f3a5f83bde8de7afbb034c3164b12b69a43aac3fcb9568888fe81bb7 8c853b69f1006ddeef4ca63c55de8dc0b9c9025f7b25c33dc4d91dc8b1820e92 0e8f20bfa6d733a96d8f6c810e385795507f6531f817c3b8bc1c8adc0422d515 7538720f5230f6bb3df9da784a280625fe334ad9cf9dbc0af539d387a250b64c b1f6ecfd0341c5c73c538961bc94701b64a2015d1811f55f25d0242dafdf783e 018968e41f275ebf0c24bed4399b735cbc7db165e6098bb1583f23de27a36879 6a11ca91ca0b887b08abc5a7f1da8413c61c066c018b1c0fcbb6fb32f2c4afc4 8b06b5378363ff20d892a1b88f5c2417757c0b130fd9f64a1a341b8c1de1b1a2 b760ac8c0194aeaed6e6e6b1eae0211da9af9fbff3a15ba80bdf2f72b658ba9e f591e2605b4319764b39909bfbad55d23e7b21c0752402ca98b88c34b031922a 4e74017900a405dbfcfc926f9ecbedaafd2c0bb6397870d9dc9d41b1e535709b d5c80d2cabca9f05b802e4b7d2fd16155530c05d11879569a2f5a39eb943b78b c6fe0e35e24869e26460da0e2fb1b332b7492b43ea88b9f4148fd98522e83521 87d8381a26bc1d056173fa8feac8453519f00e2bf749db8ff75b528fb197bdd1 57053e660c0c81068ac18227eb35d5044d84d55158fe758618034ce637d5b7d5 267a3b3e54b684e83fcd428077866e1d34da7d1e39dfc7ab032fc5d999bfc533 3b09a5db572e4c578bf99e9aa051982756dc7c01751b60315ec9dd2ca37a1444 a377cc3c095aa4f5bf557bd783c80e29b7b25b2e402153ae4239be02c3cc2352 49481a98d6caa85beb90a20b1d6553f217120b9ce8bf8ed6fa0328e742c6745e bba13f71fe1dbf55fb3918f6308167ac1b3bb7a4180fc82138b20b691d4f46f9 3a078a014af39bee59bd8a5633183a22e17beb99f0b5bc257ea2055130a9f082 7fa93e7df5972a851b2d5d1677d91f3c64fe64fb8726c90a9d27c0967e9b6631 d33392c365e6240f07ce7dfcc3e569d1d06f385a58a9f3944a0c015685ac177f acd470f2f3b55923e3b703c129a728d2a4c770af816fdfd672b34c12643e72e5 de032b1f2d47b00e75475ee8a483ac21c058fb1fb54b9dc90b75479937c6c044 acd6f51413464ffb0dfc1c1deac7937469108d02870ad94e8f0b10f14e6e69cb feb54b9f38269db972cb3d1cbf174a3cb39620742c8866c86c254a198255c2bf 0eb826677cf65f14e754ef59b12532386357b1066d6ef7b81d0041e30f802edb 15278e82f2162a7c0b7a278f11374805577f2f290516a17313d272eeef2f1ada 11a1e842ce139c514bc1587a41c1cd9900626b06f0f7cf90b65934d080de2763 4c376e8e4357ce4bea55813e189c41a0264afe280d7c34cb206befe7bb39d464 0f901583e25bddb2a869e6171ba121c2c06e7daf23aded203632a8cfe608af0d b92c1dd7ad67990d4e3a13fbe7d4a551075f62a7565fd4f4d901a3159005fb24 247122e00a9f2e3caf97c43e24b19ac202260e3e96923afa73335e8bdef7ce9e 96c8f995dea4bf3b683f2a81e9ed278ed6e1fc5309e727393f428ff8b1f78d34 0eb7d014ad0ee89490eb549d1d326cebcce23ef7407461f282f95111015c3d6b 8e58affe15f309488a633e1652aec73a7d0e371ac666755947adc1261c833ce0 06e107d7da70ec06edae785bc99f901527a5371f25fbf9b1ec2e3615010e5b99 9f16470fdc5ded234b4077990b21bbbf67c3de7fd60c730735558b15acadca8a 2708fd727607f15156f76472d1b2a9b4beb7f568d30c9f9c7c9c6706364757a2 d9ca758b6a4f2d8d124c0d35695b7177e90212250741b04d8e5bbcd145269667 bd90ac13268ca43173f1db528980db2ab9676c5074f61c6bb771b3f3e2b76d9c 8d73afacac9091f3c85bd2a3bab63ebce952db655adec676127875f4245c668f 5f277e5240ad540a9c090fe85d4e90d94d36b9f06b28de4cbee193079df5f67e 5eb083578726003373a565a38fa2a9deb175de76ce14fd22cdb5198512a45062 045c742df2b9729dec0db50b9b9994adbcafb86578869f519337137472b3205d af5e1b1a5f0a13a8aba164e8b86618c55dccbf6ee489347b6ed56d36272fe550 4454a007d0e68b9874b242f791f0ceb94d8e7a44a3120fe95bbf081b3d5d6cbc 03d074c55ac25b7e28b8321d4748f6e5bda08ffb69eb0bbb3d50b769811fc0cf 63fac00895c73197098b1f0eb5d3161187e220e8cc095366becdd7032c8398fc a1a863b3306dd6f05e0c12efda655ed075638195ab845689c34ea2dbd191a904 fc2198a4c734752fd44c45ba376fc3a26c90da6efe6651c4d33bbab15dd9d950 cfdc0f84e220eae700f66d0f510d240112faa3ab0e6d3f9462edbc1f5712e595 d0263c8b0a5a5142d2b2bc1c0e87637bacc2fd659527f8ad45d92d44e37a38c1 be9fff819edd8c0e8ced8c5f80f05d626593109102f97141ec1622f147536812 2e6d4c92a9361d71a2332e80b662b37824df1d37e67f47fd43aa35c6df54a0b5 cdebc2682932479d5e0ff65ba0f0c38c4f8fa45bad7740d5e7d19c489047e3f7 746f97c20da9042588852d4db525ab93479eae99e4c0f4685e12e9425dd0c099 dd538b9578cbbbad4dca3961160e6efef26ea9dab88a89d8ae0adce274944106 e35d361ba3f3ccf6e88c92f3978ed5caf047f81d5d0d71d9bf90019bec2d7081 9c8f6f40f39766fe928aee7d98c5b3fdebee723bd593be8813321e112e88087d 46e4893d25e6a82d19e0ad9b877493e94ad869fd9d8d74e3613fc7bf4a8fcfc0 9d70ce0890a4d179b5a6ad8e761121c70fef6ee17fd635ffbceec82e3e2409ee 9e5f4808c7f64685165c89a5e81395245d59e695b75fad6d6ef919b899166f14 59ce0df7fc09513304e875f052c8bf33d714825649cdbf5749d9d114c8a39bb8 7645c4a74d9016cb7c2b020a2d6342dea9e1b3f564ef25000167f3d63f74701a ca88f994a54c007d2d224d77ea5a30885217b911193e220756950ba849176541 3e449e1164ae501de81dddbc2abb619b59453146066780a456192dbbcd7a048f 6445c94819a5e1723a2eb66e99209fea96ed537df5f88edcd9a24d9e8b8287ee 074c119c2bbb3d2b31f4249a56b2fae6e36ede6887c35cb8de9803854a9400c5 7c98dda6e0cf2f3fd9ede83bad6243e8aa41feb873b1ea3ea8c29a5fc6d181aa 1a62915c22b52a2f8e6088d8d0b65916197064c4f4e841848fe6a6e546e8ae47 29c8dc51f62e492afcb4fe53a9ee9fbc2444f007806ceb70d4dde070b317d64a 8c4d29b365f7cf3a45104c713a80b3a460aeac7af361e759e2de007cdae45150 5a3449c4cc5a75cb4673049aa314d015f2242828dfa3d6a4fbce78469169c4e0 83a6a6685f17c92c7dca3676d61aa6bac2e886ff605860a09f9d5deec7a9bd3d 3ff506158be3830427c8d6110a373eae7723f801e88612bbff411013b7cba397 6cd9febd4cc56756210bacbf7049b8958909aefe718904a593282843c200cd82 eefa93ea59097461fd3731bdee1d7ba49d824a4b2cfa041a0cf6060e32111957 e5c138171f6776a8523a618712ecc1c0ae5d8c8265f3ff6a0dc8a9e82db5f93d 5899c2642867c2c3ceb11b407c7e518cc72cb70d29e862431f8574d57bf9adc6 626187954851f5d735e89eae4430f676463abf7a83d4779004938bb6fa129c39 6fa21ade7e1ff1ce499c51f788e19b3f21751504c484ba399c9672e01003ea3a 030f1a823f8a9713b11be0ed09ab4978cf5a6081996c2119ff48a142d4e37578 574db4d034b9c4e089dbb908e6435b0625f8c73d7193984497efa8025336004a 4a83a6e63064a27920b2499751384f0912731c6ea66efacd9da0bf08f43d3895 bad9cec5999ed3b1b64826cd95bda00d1cb17f004364e0306f7864c658bc9f7a d1abc3e2d142f4b06e8adb6492c54294403e4a8f7a64f9d03cc1be49c7894881 9e5ec490e9b7a78e7fdc29b5dce6e5e49a08e3b45433dc553a806f49bad34ff0 d546e21ab9c01062fa7087a73fa4ec99c5005d772199d59ae5bcaa4c16f0b416 77b12814358dc4fe68c62788a63f8c414db091129222a29a0373bb470ddb8f15 d5963023658564b0b54db71d5e83ade5910d3bda5de1b2f6649c1bc4974e3520 7275f9c2430f68b5d3ee3268d52deb2f10d4f96e7cd9713784a5b90ed5ddb35d 3a9ec1a4fc495515e81e07e7d2a80524857ba9becdbfd45040aa5e3b3a954f46 c3f0be51038b2e10b0fc61b1de2e33483631bf9ae6b0ae38634b714b019a553a d9bff17569126f0ed71483487ea587e76c4088ea8d7fc028e05ec77ea64ab0a7 08ba106cd40d52881eb1a5c08d5676abdb80cdf879ae50904c9317abe35398f5 8d34578023d9cf334edcdc7cf0d31d5d08b5cc2281d369a167e6df9abfe9cb7a 3d8ceb57b8caaf1280fbbba6d416644b40795108dd6214939a5179dcf145f577 bff479412a09ee229b9f2d602c7a5859bdd60f5a994c4f5e9db5112e4494739d 0202937d7e43ea9a80f813e8b9cd0ed446e755ecabd01858e01e699c1dba9fb0 edd0c0e94eda51c8e4ceb9fd2146a764adf7c511fe7d55ea6b105c86f06bcdc7 e4bc9d5796ccf95354f06bdced5cd9b6ebddc06ef89ec3ac7f840ebd0445c360 73f9b96bdcef5b9b1bb1778532c375cf68074ceb78553e45d15cf5c0814aad1a 3aac260c3dc830ca11121ffd9bbbbddc75b93e8d0d15f8afdd26f055b04ce2b2 d99a4d2947a4b2f0e01967546bd20d795d8a11559ea4847d8ebf2ceabc713553 f12b030422194096c59ab4ee581f36258633366cb67a6d67beedaceedfbd5591 5303646457e4615526682129b5756624f78aa03674a76813c6285c530c47d75b 5eed9548ab10e6acda2809eee6ee2b6cd968b046e146a47277a2eee9f6169be5 2ef444b1312e2597799ab67b0cdcc1820c2ac556ce4fad83be54a6af8918dff6 aba89a03e54fbb759bc60054ffab545e215da4027e08b7064dcd6021e9eb6777 b0e6ac1634f789f3764e44c75c3c8a3c193ff4968c1173fb0bafdc0d59a8a76a 055561ce5e46142f202f55a016eaa286e7c17b97ec64a6e5d65ae193731bf0d5 ffdb381d4f8cece4052e2927fb4fa1cac68edbdd7dc9de9a07f3dc06fcb2073d 1990737cab31f4afa554905328b2f6f5147bcd49327639fd63dc66b2d31ce113 9f59444d00db0e68a1b5ffe275e8008461a23665505b680cc79bca4cad60a3be 92b308c84af4ec5e4024bc48e1a7ae99719115050bf7e3a8ffe4490f208a9e65 65114c2443fe35de52ddb349c813ac5765feb622f20cedb64ffba1c6bae6e1f0 1b34885e46f765d0e629c381e5fe7c72b81990a4ee0522573df6b3287fb706c9 e8577b2fe35e964db9a1689f8c73a93ad44c24516904fe3d633d7ea42bcb3259 8eb4314a13f1bf0b7fceda9a9dc3a826c3c0d0e3171bfc156fba0020878eaa68 1038b5c147252ff19586609d7c4a2ca0ec36d51d69f16e05ce02c8eaf92b45e6 33b25511fa33d5f3e688275bfae2c3b35938e604c46260603c725f47cec92718 a5ed76dfa96e060d3bd9ba1064f1d2285023b040cbce8712ab5d52ec6b903211 61403e8a7434e50ab317aee3397c21b447dacd82bf8ebac1b895d81d68f217bb d22cce8e1deefff7a667fb04c698155ff1add4c6fc75fdc0f0b4a6dba8c4e3a9 9cc18770379f4674097725c30a837fa2e6b8c76343789e88433b2f7bef2ab4ed a9aff3d21f2098c29cf50f8ef34148ecceea66ced76b004432e0bdfad030448d b58acc92b62083a38b3797bc4923224ef7bcbf0e3f8465ade1e79917cae5d661 eef065329a82d160e8fb26f1874e422bd88b5349926dc80411a5e781d2176c87 41988e96359968017bfe730f79734c9b77970fa1c8371f8863da42ea7cd09b78 2eaabb8ecd4f1c0b24f6d655ea0c3e388aa0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: MSBM10 %!PS-AdobeFont-1.1: MSBM10 2.1 %%CreationDate: 1993 Sep 17 11:10:37 % Math Symbol fonts were designed by the American Mathematical Society. % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (2.1) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (MSBM10) readonly def /FamilyName (Euler) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /MSBM10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 82 /R put readonly def /FontBBox{-55 -420 2343 920}readonly def /UniqueXX 5031982 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4 d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828 e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4 7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80 523f59a30d195fcf9b9fce4ffafc6d56491bdecdcafdc988206c5a457a19270b 37d0ab776e03eaa7eb568eeab6b5e79dec03b0dcbf923a2aa8e4f4deda2cb043 858d8b430efef0ed914a80ffc9818aba0fb30dae3694e5b31df3855892d59b89 7f82ff79fce8444c7926ffc4ea008e63bc518936c9098afc2d1c14030a2c15bc c9285c1b57e80570d2f6301009e63d9ddeba44e3251c75ca9616a2c5de9ade66 1a15db37b40b67c1bd71f77343912c62f47dd24be0e03dd833ea60d2eb020407 eaf042fed30f0c2f01956c83d46d982b50dd979c2026ed5f71979dd98c9c1eee 25054000a5eed5ce9498b2cb59a7ee55e0538ab47d86e69b2ac79229c8c6bfc9 3a24e822a2f1c9964fe630344579a25f66646113f73d1315c447f070c575de76 266c6773b01137e4a039df5e4c2f199e8e3396ef9fd001eebe090e04384c4089 ec9f13a07ad8733c6af775f432f154ef50ec4477e08760c03c006e4d1eb1c7cd acb8955ca4b0d62c7de046ff58d431bb9883d28586552c51809e3ced4dfc2198 b97ad9e52ea33c91b9e335a80d9b77d3430e0487930f992459664abca5dd9177 150b0fb502fbb04ccaa94ffe2697ed07906f95fd98e7b325bfbf10ea6b39fd76 c1e5295022cb39e9cd471b7b0b3f9d72da99deb0615d35cc22f42dbf5cfb70dc 6279fd520d99f32201abf25e621cfe1d37961d9c0ad36ef3d9264c547638152a be30812eae30521c3c775adf1959595a43d8a9c4e12d9f9ece27a0c9b5f45e38 8e26a39cb0ad4e25ab8f21b25ad1b106ed22af7947ea8ae4dc17b9facbc5e22e 89a91b046ba4cddde69c1997fa7f4cd949ba3ac4b6e001475daf165b9432dc70 6e30aeead8cc342d94b20a4045a331175655d6aa279627efc0fb53a4ce66b68f a45b5765f0c1368c02c39418366880efada9c81e9dfcee2a9443eadb1c3d2644 736aca103a5a3571f285d37f28f172cea414b1a8ff59c97990a065817703841a cde9d9f92a1511564aa7124acb4d690be1be46bf1e2f05d1eccb8980e1c01e0b 9ff57dc4573f9a105b96073d91b65983fb3cc0ede3c9eeb72411ac9107c06c87 02d1431267a919f2f34e4880c3ff606a8f4c15b6b401a0f32841385ec46fbfb5 70fc46069ec8c47745ed68a8af084a442c8b6c5699983acee943dc23634147ea ee1d861307e78a8dfc3a913acf76c67a802d2526b4fa06e98e4f461689a91c0f cf231549abcc99a5c0bb1d2d085c51b5a991b64e0080950a3337bf768adc1fb7 f1b787042f5f0a6f5b0abf6b00f0eb51443b1fa58f3dd2ac9146c3f85d115412 6ddb09fa4c28b69e723854a59b41008622f629c993633a38e8b06995405564bd 2a0047c4ae6d387d0a0e60e655ebd5993957d10d0b9263625e1b9d93a246f9ad 449e44c53963ef9efea23d0c219515a65aaf2b4ed699b7bd075af0b592adfb12 a1447799d128290030dfabf8ada2240e954d54745b774d883c7288882f6c926e c00692b953c002c4227b66eb5120cb2117bad0a89abbd5c604ef284311d74824 f44c9865eb5c008ad4bda519a3e278a02f359d41 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSS9 %!PS-AdobeFont-1.1: CMSS9 1.0 %%CreationDate: 1991 Aug 20 17:34:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSS9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSS9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 76 /L put dup 85 /U put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 120 /x put readonly def /FontBBox{-63 -250 1027 760}readonly def /UniqueXX 5000802 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d43275929a6669eca687892476 7868f73576f5c7ad5205db1a9c1a6a56e36d0437e383fc6e79be0f2101b1ad49 2956e006c5934dd525b295fbbea391d875577eaf43b92c5f5822650fc8fe8def 32af1ff2aaa741bbaa5c7188bb482eea9fdf154a99c0f963a285af7a9ef2135e 96e03c69db45fe42dd483c44a31086989bec1150db7c28825a741b352734823e ef88baf840e7b1d52481a9ef70d997d4f0f23bbec3bd2d45a8aebda8858d5a54 0bbb6a171e034c8281df7815cf71056426777cebc1fc996718dbf2dbd4479d3c fd6cb606abedf431767af2335db3e51e4d72f918ee74e4d2302a453c6e795f7e 32cb9469221d023775b65f222c5763d872740005b3892c46c56e3f574f673475 c1ea2e5facb3178890a907cda254570000144f959ac399267bfd09f3e0a73f62 4ecb51fbd7a61050f5dfa46dd1488169dae84c82f36935e031b424aebfce68f5 52592fc586e4bb59f15bcaf50ddfd352180855f584599225227bfe8c3b719dc2 4badb65f8283f00d4bd0e597797dddbeca3439348036ff2a35c6cb0bbbbf811a fc9ece5846b0ff18770c81eb888e15b5e7fb352cc4712c71136cbfea437c74e0 1ebf44b394cffd09788eebeef1f2ea6ee4f5dd8d267b544828037c024d025a57 f598f385e8c7e19b26ff09d29c9a310021bdb913dc84be33b1dad4a1a9fe12c1 64b3edc21d0f2a096def85829867405a16fb0472a41763ea02f2c006f2e69ca9 eff01adb9c18729b3d92cfa06d07ade71211e78b0c3f53678f9f95a9e825f611 3ba002015a1c9088775cbe218609648f246aa8fb60c78be37cf775265a02a274 3fbec1ed254636b8eec999da93f9baa26eb30141d204fd721fb18eedb6e38edd d005da79c09b241595d540776a777e4e2b9ce50049bca6b2c325187e9a36b8e9 f5056bdac5940f23d250aa9aaef335535562413745aea4510d2e2e805fa61c39 436e272905ad59a2b31c7e0ab60ce3d954c4275cf2606591cfe50f32f71aa076 17346422b63c38e06e17fe2cb3882eeccc02c12df7f06f765614c0199b5fdfbc 25b6c833fa757bac8d03162a332e22f868655e06cce9a9d2538fa1d4fa27acbc 3e7b8d7577072dbf6f365865a8a0d91bc391cfb50a91bd5dd7f0f839ac7d1965 968fc34dffae4d71b66e87f275cc4c3ecac956229492d006ff6e33a48b3d3e22 b26a4007079537736bdb693c02cc32c8244a6472bde264b2278b311957ade728 3305de9a0863f6bed14c95b7af9151551131a26788ef1e87ac39e67ed6b77e36 ecad1120d86534eb0bcd4cb793f415e0b100f30264aa2b42140c6f5eae1b57d6 8890ce493ac97929cc1085a59a4a5e55d0326bf7d9afa33a5a7799f82c24cb39 29b16b445dc6b5a0614cb057cd0bf0441952306f189f630f34de6e4dbfa211d6 6f62d68ca14817f6dd7dcfef6ad01263e9ce1b80588ab16c5d980b8051bad688 41fed0dd3993e819856c1275c35faaef015401e945c6af158904f64bfebbae8b b5eb54b572dc5c28e9043c59677198bb296f7928ea86ddfcbbb4af3676987cd0 caf5ad80c817e741d883af2d7caf7cb1d6e6034212c936c6e537bec985554c66 13a3e9a82842d0f543681d6b887f5f0e2738e4d897e97483ca86401baf146f0d 5c3022ba287d8fbbe770b6bb6cff9efe811a5e30d71daf1980f46ace923a22e7 3b8c9e96077bf2d4fed883b0f884e908a257267394973c980ba3a0e80ea5a06c 52a6959b9f3fdaf79cd87394d2308db256d529f600bddf5dca0461006c43fabe 6d33b5a66f1bd016659c8ba782067a57253b68bf202918d315d695fe3ca79270 126ab9b9077594e7d1a50b1803c067b0827b7e6d57d2a0abec597b80e602b727 84bb0e512d74a7e74a2228c8354906520cb5682e529eaa9f518422b0adda2176 4155b55bf3419c638761ed5dec479bd774a9f28164c5955736d9457488cdfbdb 73ab1c5c60aecefa2e2413b5d3cd135ca45247a8a6e06272a04aae00ffe8565a fabba60b9dd93148942cdab812740a3dd36154b98c191da29bf2c5224b3bfd59 a1adad12c62f117b7f6c2f277adf3d204fd02d3c6d76a04b95537693435a8cf9 eccda9bd43938b07e01f108fc8f846e4f5e7ecc1742069823936f7e7f73a1ef0 1437287f068a34f1518d44997a8a78a79bc98946e807e0b3036ca488e21739c0 87a71e30b34b910b65878b2d10de6df6a0fc977614fa83e6e978050921b7664e 16257acb17a779d2d5214408d25c0bc412155b647a48dc3ae60b0b61a5ceac00 bf5ca24e346e12858e7c0b4cb3057a18706251d2e84ad0d2f20cc438ec76f94c 336761346c7f25ed742b2380d91710b99d46ab99ae9cc1ac1ab22ba5be6214fe c13722fe665c92b50a42e3717c35c6880c6393f20ccea13091df22a4c5b12b1c 932e8a56bee5fd633f0a848428a3cbf15b46b512e56f8c3498f2275b375991d6 a3c08d65e17206f22a236066d211a5e91e6af64eeafd1c47d9f1ff81c37d17ef e41e36e81288c9886b417573a9cfa2ec4027dcd73cd0faf616e7c0fef57fbaaf 4252242968579e67c485108cb5ba81333e4bce530e1eb8104bbbdabf2238e45b 3eb6a63df60cefb00529f4e0e61bf95f2a09f9bc7711ea7dcd492d4372994949 f0e635451355d79b6ff0c2c4b269254a642c25e9690d2e49e5937587f2a331e2 e8d526f18d9a55cfd66f1bf3111fca88b275a849351308eaf209140871a73c6c fbc4377edd3d13969e61b04a7cbf050fe6f1f03c631b8a238244810e6df5b0de ae78b03bb6390f704020f8e77d6824daf9ebf177add21bfdd2592e611ddb3969 2ab12eef423357c51c1838428c67463b8c00764af81d42a9cffa5c8485ea80cd 48fe6d8102cd0d675f11f81afd5a5945f7e7b288baf41d02772dbaca581dd01f 199c60dd40d0f6142beaba39e18a9aa786099b8f71d640b928a5fa76130de372 bc04ecbc6994789e73ad63e04e8edc79d369cd84bcba7e21412ba15232540462 2521f384c68b7a1317d2e4c055c3d13f10a8f8500be8c40e86fac92fc2d7f405 829b9105a99af167dbdc1e96525cb01cd87a9c20efe19baa6a5fbdeada05f646 7edc709556103ed8bd67d3d801dfcf045ffbf073281999763f58fa226f872aa4 ec27a928cd9b2d56f6fe4778f7f76b571d948ee245fc942c00603276b3142669 d16c174e16eb9a4451c6d8674d1a15d73347cdebb662451cb86a8e7fe8143dd7 a63596397ab3e00b9009e087158392150ae0628a3540d4de7f207594dcaea2da 58cc9530398dc7f0423238ac7f7d285bf3dd19c8d8f85eafb36d12566a3a09e5 3c37cb332925713a02e940d5aa4288d5b4c23a2822d49b29d5ff4a4ddd421c2f 5da3673e716d027023f61127605374cda668883c1a83d02989f75a99c1510f0b 28eb8f78740ebd68dc928f4f3e44b3bcbc3afbdd545422c830a72087c05a723e fbb8c67cf320f9914037e566a9c1a2652747d155d9466e5ce3c798f1beaf3c4a c4920d7f832ca1ed57cb3cef927f00e4eb1535e9b0c8bb3b26cf34de6b55bfd7 0cf3555a268e8f47d9864d4ef330a0b5b15421b23d7046051ad5881614207066 b52d354358ac6229a0cc43abaebb189674e2d69c59247ba319b39a3819381fff 63e2c28abd51f1294b2a2a860eb8c4fc6247f3fc3ea3ea2fd4808fc358fa4449 01dfaabccc2f24d6c4c3ad76643bb358738b1933e9870ef4dd934408f06d71ac 8be4a759cc11d6a9f4ef3d414cadfeaad8ba79651d2305f30ed2d1c0f9d03d01 1832c73404c05535b72ae98bb3394a5401d6eecb3afc875a9e6d9d4ad62c123f 7970f4becd2636dfc9e54300a43691a67a3d6846b8720da4b173e1160fa37c0e 3ce55f2cd77e8dfd5009cd3fcbd8170caedbad6ce66c6194998ff80f7ae46c43 c0009bee2ba94211e61467d308bede8d6526e5f69e8b4cbe66dfdf8672f7e557 5c2c71f528c82ce6440799c8b70d0892aadad07a44c14381be54c23824101732 76961a573e1b0605b028e99b4e78993ce02a5aedf6da4ffb59e459a47f2e5679 fea94fb0e91617791c03339ae4e6ce32bf8bbe3dd9e7bb802c452517027b6629 142515d93257ea898f62c30c7c21514f1dcc69a7dffd82e1ac5bbd476a4d01fd 4e5e1c2b44c652cdf0fdd2fbb2bb3b871da39642426ed9c96923e47bc75fb77b cabd3b8bf9fc6fe934c40e99919203591f8c48e2b8c64fefad1458ce47edf55b bb76c8ec15994ecf3f5c6774aa2e881421ee296001f9c39bbbfadc0b6045f47d 3a6ca34009f27291f86d3a8b8ef3516f32a97cfaf9a614744c00fa73d977421f e051e85ebcadb18dd110082b3dbf731ba00640b53a0445919739c221dcb79741 e4d62f9cb0ab6ab6098dec8b2161039cebdeb9dbf38b20b5b6b0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSSBX10 %!PS-AdobeFont-1.1: CMSSBX10 1.0 %%CreationDate: 1991 Aug 20 16:43:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSSBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSSBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 69 /E put dup 76 /L put dup 83 /S put dup 85 /U put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 120 /x put dup 121 /y put readonly def /FontBBox{-71 -250 1099 780}readonly def /UniqueXX 5000806 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468d2c43f9469c605847b026bcd2 1cbf124128e8ee31aa6d4286fa6d465315407a865001dbf5f9a84d3c7974880b 04bb3fdcc784bea5fdd113f8fbd8a454347aa30bf2f5369abf0829dcd5378296 a42091f24af75e9e8310e61e74704d7d88f586944710ad7adb098ad4ef8fb0f6 34873391837c2456f1126b8b6f2a19c5f43e5c47b746fbfbe14db596bd4a5000 adaba65a30556845ae06c6e20efc20647fd0cc730d587ddcea79c40388105b0c 20782fee3f0f2257b942de0853a1ee99805fe77e1796c3d2420f5658fdf30766 0c5525634b2b530a17b104e9a21ecc2f6a30e22520eefdb6a62600acc6b6e690 358036a18b2f414ae204fd429694fd212be6ede4bf941e3257f88a03a75aaba1 59aac9d0ba10cbbb4d4458c8bb0b3894d367d6256d5577e71a7c409a6f955909 e0f05b89175e89e50d833178e230f23553979497371147f764d7d5f8c7060278 d4ff7b299631604cf2b13e03038c1d2f8a726cff45122f37597dbb6eb8dab326 f200eccbb85c7e45d16c0aef3213e6b9c6190f6cbd1d0c9b24892fe97e57f2f3 a35a9ef6f0564ae852620bbd8d333c1fe8f6423157ad465809c536e9bf60700a 6d86aa05bc4257a31cff4282186a1540d0c9f91526c436def5a58caf23890bd1 e4f862076a77ff2339272d758ade8ce76d712d09a66a486038c7526ba4ec8188 dfcb3554fc97d7896893656c3b0dd357ab78098b97b42d507072e35112e7bade 4f03b0a7802093c546be61c5c9a61562f13364ce4b089a976f9f5cb84f83a077 44631b9532e1532309e42c60407656ee331dc020c2c04dfcaeef8de0145ed640 cc6e4f5111c718d64ffd3b1c32278711bd32e1ae3ef02a322ae3e68ac5e3c210 35a7eb1204e3403503b2f66527d90b8821346fbd5087cdd133ac284445ddff48 906a32e416e2c89c0a25539547633090a19b698af221e7c58ad3b1c3688f0efc e69f002a260c13abe7056e2bfd1c0d510a1250bbfc7489dd82b2788fe275e827 e9522c49da1831d1379968186daf92859a7fb611d4c34bbd2a7e2f0df048b7ef 018f12e45841d0499e16f65f2656eef9d3138ba9ab28d39323116d2accf14660 71c09b4f09c28577487d2ebb4a435cc39bedd39bedec27b923e3ffd0b4988d2b 523e4249c4c506e3cf8391ef140c5dbe74a5c74802c11947637444964ba3e913 01a6befb45ae578823a0164af63bd38fdd0fc2100a683627c5d7ce1199e82862 d695426a8256df170bdebe8480e09ff39efd085712f19b39062db5d428f6c65a bfc19287f35214a4582ab43aed1db61e822809266c026fa4b2f2b643278a706f d90248206623a00228c15adab701f7cb3e35ba077d1b95992a5d46a86a610c5f 1373db60a9a5eb44626568a50f4472bb2dc565ece751c895aceafef0ee4bfec6 12fa78538f81367fe0b51a0feb045a83732c87ce635d361a50960b1559226e06 4e897392f8f990ad56ac3fe604a907beb945b64e94221f30f95504a47b2e06f7 54aed53d5ce9f360798456883ebe170a5b8f0c10e7cc6d2fcb6336b4b8043626 da8f1ba0465e22bd31427448400c64b2822c0852fef912629493bffa203ae3e1 a223b4fb5b99f24672955cabe1b2908d5aa41bc8062a86d222bebf0a087bc820 ce1c3797f898038c705671fd7784f52da37b986817ee56dfe2754895322bbd43 311a54d98a2f81f4f253b1f66c1125d3709f7d26f61f5cef2048dd18c10cd6da c4af3ab618e4569814873eaae8471b82c5430cf3730fe3b672a54c4f8222e719 dd5227cc88f6a4a3c4c19baae4b5f35e5a139f4ef3f974480c9ad2fe6dc62f4a 629f9d9c068e5f4c81feb83db854ef1761701df47326101ffa4481d5fec54a05 7ea4bfa104c07681a856a561b9d8a2bc358982ee591dd844179d2bdf37aa2da0 e55e5900e4988f35c0c6e9c849d12be020e90ac5a3d615a35cb21a6c84b15969 778ca966fe15498f75ba747f5c2971f355b08e1b4ec2b554ac3feeb3664f78ab f039c103a10ce94f592615459776d44890af62238db72b8897532ffc651954cf 42333cb00b818d48fdb9a658195c98509e521a4a7ba562c60d1d0630f1722457 1a042b37436735811b4d9af1e82e34da95b161a24d005418d702b7d315d21ca5 5274c92529f87c0925d4c637d7f5f6a82ffa9d427eb3b3ff6c750a4c835ebd65 74c743e213f25b559fd5d4dcfd2ab9e7f99da8c0f308e419a5aef1e88649b372 65cfa571e06c32ff5d39236d1e643e7b839687eb11354fba0ae7fc0145c114b1 0959ac22d79120acb16204b35e62f9e134d0347649fe6ca2050719c32332c44e f3b4b8a667968a861948d7cc7c9c40295789bfab7289f4f0887e57b74f444596 747e44ff90f57dc46d530d1f08c31284c7eb7e515d5e7c3a937daa7af59a7796 c8531ab1bc084d4adbb8ea7fcd18c16f3295e3588173d109f8eb868ce7542c7f b961126ae35f9c01e3f49e36f6fc44f797728b72b7cb38e4d3113fc12a8f4f2e 37b51a427d07a10679e3c1ae35ee3aa7cccd0ab851c0de303e1093540f63fdf5 dd99cc94e1c978bd6ce6c48032d4ab9e9ca785ffebb280549dc789066fd2cce5 1c836d3e6f30ab838bf19482ab814026fed3e40f43f1f78195c9348363202c6d 5f413d0fe3822ff010b5ad621f853944a466a810f2072a4583d5e4777c274cb1 73c29cac8abeaf5c6eaa8d07e2073d2c1db6452e0fc0eceed35f0d8e16d5064f 999de0d6c695a13afb0051be3a26d487b51db6ee386c37bc7e748e6482a676c8 3cd7ea54fdeff0f4f6153e1760f43e503a130db34b1037fa80665b4a9abe585b 74ebc2913ea672a8625e6512f2354c08549518563091fbcb967d9f746d055084 41d35acd4c313ee0ff4aefd01c4092fc88fabc9fd800512e958612381744b0ca 8d6165ffefc613946df5919133dde84b1964c548d3874a6c07a6c53dee6a3671 9f0b6fa5b77775d595a8a996bb39babff70dc166215ee68c5f5d05ee197e53b8 48e1636a5e850acbfdc7c507dbdce27987e92cc7cbbdfdc5c9b4eb2b0a74ca26 278b96094e03d4d06d81378a0658a996bd1b4fd98ecc8d11f8f800e4c4498ba6 8252946aa7243546e1d429a3c4ce367a2418310edabd1e7e7e40a5186dfaa3c2 96668373dbc54202816f733a0ba0812e7d7d2e3cf776ba3c687ab6d6fecb4317 4816853c720d292bcedd6848d0fc66cfabbf3a8698ae955a1979da8a608f9b34 3aba3cd4c194ee8be66e92e69caef7a1d79afd12ef3eefdec2fe5256ad137190 0a998d08e46599480cb53b73eb81c4d5fcc2e609b1fb58ef7d1f20cbc238c41a 1e7516b4e9c31347b979d94af3fc9562ecfc6cf0d580626df3746c489b256b82 abee57c94c331c8b082ee4748833f9189a086e35147093715c407f71125d0e7c 20e402fc4dfe1f418c84aab0f68ddf2aceeb2d452d8b516451772593be6ef324 9cb4635865cbb81a4c9bb0853a311660872d0df886966d9d86568cf1cea425fb ec3d97acb231b06a11cd16652383a89b2b310ce865fcc2fbbd30b3c544e9b4cb 9e704831091a62609a095b58e3d60fd8d3580b302037340857d3a51ccb424833 3f0d1728e3218d957d1561704ac8f41c47de4b9214cf0ae6ee6f27b01a544102 9b0bad752a851ff52aaecd899db2418530d7778a755f2c3e59069cbca0478f41 f70a7b0a29a6f8d6fcb70b2b9ad4c137bf68d445677f30d67abb6058938b38a3 2a17611654aa65715c903ae196922309a563b8962287259ec269272e813aa466 6bc7c9cd4bb100e347d5549c7de80bc76cd2f5412fa0477307792dac50979370 8b06e72f4c9f7c6763368afafe1c98c0ecc16162b2558e5583c0938c52da1998 61f2d9c8ec1a3d9087ff05fc989a8465ab0d565296d896ed8d822052594c9b7f 8025c3a426f23dd83fe8297b51c29dc925bd16e72f24feb3d5c3bcbbd1e1da44 6039a6a4b4c5efe0b12a704dfd80c4641d4a347b99a1509a05a09606aa67ac43 394596eb1affaeaac3b3c02962cdc4ce4e7584e0a883170fd1a8bc076e16b1d2 10f24fe696d879355f3453ab43c49129e127fb05d6d7d195e792458a6c28a177 8d08607e43d595178834ece22d548c8650bde8887da37ce5b12bf4ad62df42f5 410fe93bb978653b854f810e89f1358ae678d8cde11fa6530b02aa179818d75a 53e78a0292df33405e2f1dd3f93d8f958c53a8a49ba7bb76485ae4640c94adda 63236b5bac267e99e5b16cbd05a328f8e0d656dd319c47aa9d013d5f828beea0 53099728bf7f318ad904813758a7d46247c62ce220d41478c15cb3f4be5d6bd5 215852e115d80012caff58d0e8ebb683e330d0db89330a9b264df37c46f62e0c 9e75db0f5e74e93a232f1b853ade5454216401264a0716cf8fb92d9d42045c6e 652857efd9a7e78308bf38c2c5d62fc229ce045650b6b7752d0f570a866ef008 b74ab401828b7b2e8ffb5389e442726537e1426d6fb2cb2cdfef690be4504c8b e6449b84fac6b80de128f6507faff942bd15a21fae64310ec7a6d14db6e72e8a a32ce357e183bbb2068c6b110db2dc07abbb7bed24e21133de253056af5f3d85 a27410e9a49d5d272a8f2f96a5c0cb49076fb52168b670de65cb16ba0f68a5e0 62dd3c8a397e362cb0020cdc68d00f0288b8aa7f5a9c43d56419b3f2b52d219b 1e276a52867151def2e058004c264390d3d9dc1a6cf0a366938397bab9ca1fad 3528ebe44364b2f48b3063998abe7fe770b2f07235b8b27b2de47de1ee976f06 9d369d05d0602aa4c8323f63ffc873c09b6cecd3969e228ef8e4abf85eabfcf3 57dae6a549f87f87efa8de539fc88cde5b92a99b29908501d34b1c19b8cf09e1 2419d95c770f74c81bb7e593816522c203baaf10d4797d7b9bc4cbf515de8fbe 4becf8196925977d7c98a9d3ee1aea68a34bec861cbfe12954a1719504c5f623 2e5af6e578cdcb8225cfde883e1e4e4210195e25b7ade78b44ba5f9a3abf6ea5 df37b6f6a73fc8690c85e909753b984c5742dab36ce6d60874afb01ba5b73ee1 7b7b555a39c6f8d69bca09b313d475748f5c6e4d56e0291e0e98c92d934ed5f6 cca45a4227a67c36a75177fe7c163d66fcf4708b47e6dbcd00f20b9910450335 776800f879f0e120fe86a556d803ba006505b7623b4f6247381a5b2bc8cb5719 9f665a4e82d14874d8123142065bd5b1a4d39d3e711df565c08e956c78bf5b7a fa49fe408756195cbd2d15d714c001cb0c399221f00d80ec2aebe23ee5c5639d 70b566870e944037a1cd0addda7efe69c63d467de7af1f3a6040df8b0d665eb2 2cf21684dae7169fddd3c41ad89126637277a519cc31020408d303503326f076 0975909a62cb670c31dae1d9596eb0647dd375c0fdedae45c56ccaeef0375202 a5a9b1a2e511f2c23f19ece4447480d0aa7e38897ce602b434d23a00a1a38305 769df9f08b4e52d314c492304ffa170daf5953c0ccadedd8a9b6f18ca7e1efd5 86b04c85f657496d5e4894c600a0166acc2c853ceba10a98b26242df8a00b21a cf7350cc322606146c728170a66c3918e965d6e00d2e0d8e37fa5e267b004a70 b7244ebb5c05b99a4be301b85283835372e5a89c6ba40607164f3a19308440ee 4b5c02e66930f0d75f09b9c27d6c9be636522e19e4a685411560cf8499841206 5bdd45b46d2d6e4add09ddcb5447c87135ed650df5e01014a0adde71191baa0d 79fee21604062b078bf3097f4d9915391424639aa720164148a51a5d5034c34e 543c9228946e837948dbfab1139619b1cdb5295922fd02d70dcab04855c1aae7 8e2d0247c8d1496edbf6fc5179269b154a4e07fb8d148678f50a6c0f04c88b1a b431d69bcdec0a85db666376a7060960e656c0611b707263f1d95d1fe8976e46 1991c061d6d9b399397fc8f14ef5716d7a75562052567860964f9e72bd9118aa 8885fe9422c3902f9d897b1cc9909694fe98b08c121cded6707298a73870085d 3144db84c41f1de89f347c8c7895ed854d9246a386d8b1a95d44d1bd49dc0655 5a45186985ffe56867da504d4a3f24c525fc8385e4648e984fe71e4e6136859a 45022ff82ce7f5968866ffc939adabd99d06f1f95995edd3bd8567f8a8e3767c c17b1cb40912c5c809213b64e1068956dd0d4eceac5f0f9d4206118408bf5ee9 9e6aad34bd4cf9ef09b987af58dfa868daddc6c3dee24b128a3dd7291f03935c f46b5a589ceaaa9b1373c80a792e47a072b53a0bf4c188461449580304a00df6 f49c6aa30faba043f7d425f130a843bb13889936f82c6fba38c51f6417dc6744 4c71648d28647d6427bd9bcd4028887d3a1bef2f7e246f803bd5222d14b32882 e58869143babe5a3747fcded09568fc2807a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBXTI10 %!PS-AdobeFont-1.1: CMBXTI10 1.0 %%CreationDate: 1991 Aug 18 17:46:30 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBXTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMBXTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 73 /I put dup 97 /a put dup 99 /c put dup 105 /i put dup 108 /l put dup 115 /s put dup 116 /t put readonly def /FontBBox{-29 -250 1274 754}readonly def /UniqueXX 5000771 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cdba9914cb8d6d773d679fcc3463e9bf514c07b 8a59bb54802bf5b9f4228c8b8b6a93f5cb6e4cecedf3ed4c1b45d436a79d0605 ab5ba5671bf4a19250d6097b2db5ed045a5181a2cd083529d1e0348cb7a4c964 d4a46a9860423c2128e8fea6c2fed3172ec3248fc938bfca9c203e46943b34ef f353a65048a47a67163137679b203f5581d54158719e31d0d4d3fbec5baf44be b9f177de2d803c9effa7bf891abd703e805ba31b109a3faa3fadb7d2b0b6715e 442535273facdac07195806f92e7899d681d2f9f66de160ac9ccca7351ed6971 90766a61f8d2a1bb13afe3d5e900f651607676a6e6367d816f1d6538500c770b b745c4760aa539bfb55f5f6806589e21ff19c65a21565f38129f6f0b9de7f897 8760d49dc02564371632dd9b729080a0e673fac60ead57447c081dea03f3b073 d01b34013646e9de40b69f47559159070a4886f198b579a51a67eaebf428671c e29a61a391b5dc2d72704c13052e66a665b556035dd0b369918bda248d700ade 79df005abadb022bb0ba2541ed90ce7f821362fd6070be5cd0da4ebcdb7454ba b34a378a154dc0555993f32c0d0928dcfec6fd9cbeff662e5af2042a27af70f6 dcdcbf1dce427022f31e403c920fef3dbe1aa859e6de55842e1dd2c9a71b7ec6 d89b9ad85ec0cbefba3d3d06c065ba92cb4e1547d613b0b5393634f63d7f3033 3a9ac0d2025950bac24faa5b18b8a9d24f6410acc06dd15cd3158b74549477b7 b8b305d5ba7ebc2c09762cef0b881148a5dfe8252d600720db5930db5cbba6e2 1a7bbb9165268768a128bdd348260c43b36660fb31d933be8fabb1d5011983e8 a4b625abdd138a46d644f22023d2cac13c76dcae7ba20db90793477a3f2538b3 c061bd68e2645c7297e940dc77d76da3d69d471f9c018ce7d8ba60b400dc8da6 35458cd6bd33b2cdfb68a137ca87ace24c3e9f317ed460b7511b9b26b1b0c5b9 4e17aafa81045d27e1836db2b4341bb3c36989cd576b98ea6f2c0b2464758b9c 1a6098975544e0f304d13ae4170f9ab691b92a9d7c9028ae27cc140d1f2fbe9b 5adaf93be8936c37b2781516a77fca79d37c8773c4f429d8760779fd06dc8fdb e4680fb91ac8e1a5f4332bcef8a3c9768b8f8e6d9a6ff37cbefe331f1819e5aa d0c271a4e874a2a4eaa1b895397109ac59b64181b6022ad6892460d5a546a629 cb62742b0581ab69324c9d50e068ff67da68c23f757093b054121cca1fcc00b4 0de2b79ee883adf56d63d9f1750873efafef158b2d0a973bc3a63940e59aa2d7 4332f635e8d6527655f59b6015395edd406bec27829445a20af6ff4dd37ec3d0 4237c973b59e55888baae27a0668d6674c3514d2a7aa72552856ad6100fc1e1e 229b7ecb95045cfff1418cfe9fbebe7cd294ab8fabe3ee673efbdd55b6abe8a1 087c3c48de1ca8f82437ade34cbd3c7e60eec431b3b0630c86c5aa60c3c89628 815b5713db10e1b4fbccdcff04b7bdd2ffcfb589b4a31038d4295e4c9cde23cd f8f9e9ee3e19c586809b802aad88aa27df0b73913f6108ff3630ba207ff942b2 331c5d61e7606ea0b50b160cdf77cd82f4cc445947cf6acae760ec6e6119bc4d 96ca49625b14b27a77c4ccbeee8fcf61e6f7bbb0377090ea6cf9b632cd75d4d7 56ca6e98340e80a23dd46218a992e037421341cf4aed33f056b8e793350007fc e15785d55460d51d110371316c0a7d857cf3c6e1f2b82a6bd218a81b5568eed3 5d407279b4a24421b1727c287740a4f7265d4822168ff603865e05bc1fdc18ad 49249eda59d33b4a416b4c3b8bad27bee8f743e6a8fa5f45142c5e931bf8b1ea c86d88c4376619173e191776570f33aed7c435ac2007a457a795ca1fb0893169 3af68a67747e83bf7fdbeb9e0891c269d16d4aef9cca73f1cbbe9a7dc493e19e 3bd9dafa888cc918f3efdc86bcbe19543e6bd428e3489c4a73de14fa70007434 85254980646e666b5e37c7a63edddec98a3574798630be5f90b2c041dfc80552 b7ce9c92083849fd00684db771ce72e7053baa295681d6bbe0b17e60df78e2e1 5a3a6116178b71bd07e92345dbc32732d576cf25e3621fe5885f2920e3bce4d4 db9f72f153ad6658d624d2e3c2edb94425c73a916869c0004faf8b093f4c2f64 4d1475e51eb8136aa2d1d7d683a49c6dd221ad3e6bb4e83d0fb89f8dd0ba526c 4c468204e03272cf458b5362847da34406f0dfdb16319d5ff87173c17ba6558b b22ee7882da60a57273852b279a94e46d0aa0ad0a1f157671be399f8e2c3dc49 06415164322b1b370abfc3e2ee9e7964c6b977537e6bc6d1eb4c1e3d1b19d410 963069678ff88afce6124be2ed683911be7784950c034726f30ac6802b7785d0 d659c559294d720f61951b794fcf728c9a1269589f3bed2344494a4bb514f020 631604eb7f4c36d83559f058df69d2b8be8d19053ec3bb8cc028733c0ddb6972 13b59f1a6d875dc6e97b4b0ad09daa132d0da86f9cda9d65c2a6f81eb4eb6e98 90f5531835e40cc16a3187a24b8e98a1c5c399e17c8d2a2a76c5b6152616af0f 16bf0d8319b9bf55789942d2b5d9cd685b24828db927567d48e5d1b1b8167ee1 12d4756bab9193fd9994df2f6e56f82c5b9c3dac88574f6bbc2d6565c087f949 ec22b104055bf7f33eb0dfb2aa011db6901ecc4c92be59c14c54697ddc7ba2ea 90dd175b3571a3021e732d3afa51a51f4cc67d27720f17ef93416ae9fcf6c9fb 83acc5787fe9318a6b176a15f7e19887fe59 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX6 %!PS-AdobeFont-1.1: CMBX6 1.0 %%CreationDate: 1991 Aug 20 16:35:30 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /two put dup 51 /three put dup 52 /four put dup 54 /six put readonly def /FontBBox{-49 -250 1367 753}readonly def /UniqueXX 5000764 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be1f91da738298311c1360c8158d61cb73427 3c21bce59b0f2e1d3c853547e19715d3d570cef600ee263180d3e7a38d50b375 8dd0cefd9101435d4abab6d6fc24a6e3b161ca0bc1bf52f71a10b608905028a2 2381239adcbc00060d6c1e7ef5829015a5afa1d1ab3473c01363d08e71452ff9 fc63cff9ce95e7afaf4e8a1722bd03fe5dd4048821cda268cc9ff1bb832da53f 174d9e4af1ba9d2b589b8b429ce7368ac70433b0ff5cc83a19f4048fe72e7708 d7a8660449ecec43435f71d329eca654dfd2d005e7e97113ef3fdea187a5b834 be9e2c464878232f477bedc0c5ab6629d49e7fcb218c5353d120c77a5988d359 3721bf0112b242344df6bb8204624de09d31e54700f4ae64872a0d8c6794f65d 5825f1dd4c2a95c1bd09358efed666b41467c451dacf553a7219a9b6f15c9e05 53d54ee3fc6fb3ab2600ff64cde6edc96e198f0655a6354613d9ee365ff117ea fbca446ea8a72885313152306723dfabb26561a0887f00184c5639975db79b5f cfb46295842fd49f43ca585f36c6322f3b062b09630dba1e9942d3bd7f998163 731692475cedfafc8c07dc96855dcadcaef131b0c7545c37f5b5e82f34fad7ae 9da5183f3bf5fc3a9534d0803e680198feac773a9b4cb8dd21574f71a5132e84 2bb805b079d9ef80aba443cc74ce606e48e3ebd33a3aed020ea919845dafc115 bcbc62c1bb2867d722037939b720ea1c2d87233d0c3463b13e48e2b08a45b825 4496aea4d0caf8afe2be8c52ea28d3ee8a9cd6410cfdfe1f7b2f2ee631bd20b0 64e2312cf06de8aa4e46e1286864fb0dad8b85ccc2020107ef45acd5a8e7fa08 1f1ca294726dc0d287f3e57b9104ca9106bcb78475e4ba3818be3d84d558ffcb 5ce3bba032ee1e079e6a53a6dc18df00cf15138e79b3ca2d53ec633ea62d5e38 84ef5c94e4d9d4a04fd82d259d8c7dc0b68927dc312011f1edad9f8048c3fc33 3d650ac7e674234d4816f14eacebef7743824591358af03bb886b67a873b17ea 4aa0629c09af1c0687db404e9d475ddc4c5ac0e288685ca081d7158827e98e8c 4dbefd05757a0090e5702eedb22449fcc1739f176149ab4a1169409a48b9d172 f3b1bdfcded76d0dae64ac70786ce1fe38a4a291a0da8062e7d0dae44c045957 b57b52047124b1a75fbad57754823af4620e38a72ca92821680c1327ac7f8e45 cb2fd385e90ca8cd4e075c271561bab37eeb3974f6c61312353636395381c241 87a61c0d86f2982bbcc3ecbaefa1bd37c5081351fbd7a941da11633637845c5a 91b9accd2f6a83426d44e06ce3db59a0a5ab11d8fe41a4f52769d9609f055478 32dbde282e7e5450afb8a24b2a32be9f2eb81c7e2668113e1a26d84e2f8f3176 3f2ec6ecd6a0cfc9ac983163756b04f6d0a5dcc10196b2a4a153f3258a3db2b1 31987da05586924e90c833ca2239123a2e2bd3bc6c7384c1130dba5546b7e548 a8c9439aa7174384c93542ae7ebd4c671a672ea8c13c1b8ca0084edee384dd80 1f7580b18aa23d65a2e7a277aae2304e71f43a86468c379a6f9b82b031a48e02 310005105e076b0a2b7e765cda68e87145d924ac9ba75e34d4f3d55a816ecd49 378d32029afe695f8550018b7d7c73bae8fe558459cb735682adc2d1323b23fa c17c8310e741848c06909672080c8bf7c6970f7013109a9c76be85e8833bb887 f9ee5caa7349bd11c1d4f0f1cf33a08c57e6df12591c8deb13ee872b2b112b82 92acbc07177d9555ab85a57d89687f59f2ee0aa2cdf83754dd12d55399d6aeac f9c8bba4cc2a81f9ac4f6a82f2081bf7fe5ddf81864d83b0cea84952f66209df e5bf17d9b1edf0c38c134210006570d7a5d64ffc16aac5e016dd1672a77a6dc4 5235e0e7eae9ac2e6820275b7c67810e3f654cd16aa40de368a13622a2234f27 6ec3e9ab119e0b23bd7b55f7e5caeeb04757743e435ecf81ff58ced91acb71c9 7605e62aa88f2e11b9329434f4e2813867b5142f503aedda798caaf5a7a8d00c ca6486550a001afe8a00f64c619799a8359ec50ce75d7758164b8a2748efcdaa 9e1b3cddacdc363295603cb865 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 39 /quoteright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 67 /C put dup 70 /F put dup 73 /I put dup 78 /N put dup 79 /O put dup 81 /Q put dup 84 /T put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-36 -250 1070 750}readonly def /UniqueXX 5000791 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf 5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b edad3b72ad63c2918b6e5a2017457e0d4ebc204b094541f345ec367ae85ca9bd 24568a01d3b9f8095f7420e6c423c414b3dcce6da48dd1c89a56d078e0d0e2f2 62a13640a06d17e44ee3866c3471fb58fedf5a3b77294517651c16bdd7267d39 a54e7171752dbde63ac19bb4b3021ce95eb5fe67390b09ae4d9ed4d704a67443 f55dce17acd996c1f5e023c9e5a18cbeecc3097f23763acb86cdd7cd13381ae7 4e48495ec7fa520539d87f8a8dcb3c826275469b6800876a457e7d1e5be867c7 b1ccad69742a8c9b0ad943482bf2a4ad0aed40baeb69a0233bad36b4ca2d2da7 322956c70375d152653500b2f22d2ab6990cadde2da14b4917f7515e64bc3d96 bf775258fc7dae4e42a4c9b6da8eddec4a800c8aadc8d75e48cae52137e05c03 677f5d6a82fa46d9f2fc7f56d62e5c605a1b7898b8d1401c2cac1a0122a2c8a7 aae09607f2c5f29293a09b9959399283be89051452898238b777db9830ff4318 a298b221c4a820c700ca964fc99e6b1d9eb0bafc39be9aa9dffa2fa326b2a466 1e67261bb3dbc85844e76f9313ab533ee16bcb478166de5502b68e6ec1ea6110 f53206cf1cfea419571b0243244b32ea38b828a01e62b03bcf476a32c2341cec b8a0fa2a3f3f339315d5f3aa7704408f6617d026ffee4925aa48537a4b2e556d 225be09392546ad561cd46cf766f0ba14c6854c5af1a528c3842b0c5aeefefcf 19f19cbce5d967153c4f88e51c776cfbe10d39328466f7a3b83d85601ef4d1ce 0cc136610fa6a74d9676e4e99291d565cad27b9eb2337b0eba4148efd0eb2866 ebf0a4209ba135ad1376cf9cc2d4110f36121055caa3f2e00e7e6950409ca08f 623b079769d877ec7f8d3ffb5cc967c8c3bc47ae55d16e54fc330b38ea57600a 8c701aca3e627ca39698d3fd715b9695be333ddd60decc02b7337c4805356cac 5f6689f889e13cded4652444eed462c3a0d21994ddeebf1526f481598c749a9e 4e8aafbf8469c59929b4e616663f5b420939384ba1b631212a73e16253afffe9 785c00535dfc08d0b08abac43714957d8a34142370045c923b8da3f9385e2b39 281bc9c7cfbb78f7dd757ba97dd712349b7f2cab29fc8c4c1da50d7a6e8a8045 db71efc37a1c94595d61f23b8630a0f05ffb84cf42a935700746a89a8e304552 9ed94798ff0f55ff7c0d083345ccede35135cc08fb6b9258175d27e81ab501e5 558e77ca44887708d1c6dfe2590dbc5438185fb16404c159ee3aaa7da5e313f3 338ae0c4959957b35ecdb1e9ee454e49168321be7994cffea68d526974e8e5b9 c062d7967278221c9ca385c188210e73a1143c9421b63722b3414a8192591adb 5bd1b090497ee420feb65cac8db1b47d7e3d03d82433dff788f1f099de3bbdc3 9f1c96aebdb0884099a5d26f111bea7a0258c656a3aa06d99379a6772c24a7f5 dbfdf6c33b30de1deef14f235c663538ed0c842b9bde697bd509e36d1bf03595 2786c9fff57fd3224436f25deac78595c1fbe504b697bd7d116744f1bd183b76 12518569be2594a03697fa5bc1d384bc88e6546bd4b65f36618aabfcda5f3867 d9b906b5ed8777d542c77ffe77d9ebf4674f7cae45be688063eac0a613ca35d2 aaa5712a765b8b580c54a0ed9ef87fa4c14a90eacfd70ce6eb9e9fbada095849 f0044aa92e7bd603b895615ec46b45b57688e17492f3030abb945912c7fa7f91 337c381017cd405f375edaca084c2a7ea2ba3cb544e5710d03bc3a6b9ea592dc 7ae3c59bdb91ff986c3acd9b892a2da25686e8349e9253a4e7a70a802ccc80f2 6dc936cd56caead61e32f4d36d42a66c016ed7943fc892186b7796bce3720359 31ee24e13561835e9f1f42a63bf783007c1d6f613ed7b563740eed52c1552ba7 5c3c730419624d45eec9276df5febdcbb11e3e1af28406e1c84ac50e4c53af65 9fa45e0621e98f8e80b7264104cf414a8b6e130f990c2e0cf0b24973f19d7bf8 ffc708dfc25c9ec421991db02b98e6b2e55a258c78fd50a3691d7a174817f662 088dc90cb23e54d8d6a68046750ffc542a0da13c18a423f948f7730c393e2c43 bf33123a5eed491303f058064accd611356b81c480ad5ae97ac1c7206f58ada5 fb2e04518ce57f5caf7233ff6140bae23cad3d17f972dea7a56b1cb97890d066 02debbae13a18f4c62ea9bd0b3248b1e9c1d80c675c22cb9d589f46cab95f988 3c5433af2e04e18d88ad9234aa1822715ad3b4c19a6024d71cfe2951f69a1003 8ed10d910c4e737038a537d6b1c41613d37225006184bb0d532704d0fb3c6675 b9b5f7dd4adf578609964f12391805e03a023177c90b0864583bd02c6e4b51f3 7a456863610d1d912e2d679fc28748fd80b2f6704b39364b89d87b682b9f8ddd ee9a427648f5245f74e34dbb00116d1db6f8e776e2246fa7f1c59b1112673d30 b98ef6e5a6a8325be223c4369a1ca72b7d91898d976e73a497c2afccce3aa796 5071397bc51d92028b548e8b82ceaa3989a3928017507abc9a0ecf28ddb12939 6494aac8c1a3bc8548612b41b950285035fd22a75b1ddccdec4fa1569a32da5a 8ada2d6e7312dc0714704f54e7cebac9f0ab556c0f52b98b627d478810d4ac28 b8502e3f305584217d35f0da8370fe785f5af653b8c834cc486a819516160a58 6a4829030c155d5214cbb58c580d44d67237a97e2e2e74073b71238ca96f53d5 17e02b8841c777ce24b94737768f2218b83434c9b39ebc0f9442fbc054ed7bc4 01dee40aeb368664ec8d567015b6f8fa0f5ed96cd634fd663d304651328559d9 580cfa19dadf00951b9d7070787e999f68f4ac37e407f431087309629b162d10 5cd79d541c1a180add27f084eee54171a0cd1d6a4230c624d477d7ff29b6465a ca39547ba87adfe609c94f5b73d5d91cfa9b662a24849640eb52176e3e00e1b6 a063820dd7d08cc03d75e553d687763570696469c6853151cf1e90641410c794 9d740589d8fedd8c2e926632ac6627fcf79b50022ef8d2f40e30924b533ea5cd 38921c20f0eec3113059e05aa551092fd70d7bf3332c8984f6faa2e19214aa04 325c3bf560ccac0007125394902b2a6ba644132e31ff1666abf0e87b2a5abf06 5f267ed3c06b30d684956aa2577f8bd4d0b4b6ce827a8ae4dfb71e3b3681b40f 1a1ec722282e5981592c193271c71428315b2ac716c1cb80d394ee8cccb27a6a 304180d5ae9adee440699123475fac5fb854786ca434b0607c28e3347745245f 390f90948993917e4a010ddeb6cf7ab4dded9ebc7ed3da1b6c562cff00a21361 68d39919d3f413a94d378dd70413101a230840a4e7f57e03301ed29baab3c5a3 094b9761a430bbce1ad6cd4a42ca68471514095d4b88249e26dc49ad2c508f4b f83a23317981cc4be17690561b245df41d9a8ebfc02eeec64f36a19d5db9149b 128b423801d5ef0a81df5aa5b283149f6cbf5a82affc1b96b2fb51699f3f0845 bea4ef226622b260dd5f452ffd929068d9e0c7d33d2e4230092efc79fc395f60 e7f2ab0c9c2da66aeac3c1afa9605479ae2c1db75e23338f66ce65c4da74154a a91acdceb16e1e89f745189563a92ddc9c01b41bceb9a58d8efcb77d0b702b51 9362ad333308693ebfa4afffc96c031beb6a7fa456d542a512a2874426be9f45 600410c697e02cd7543e20324ed61abe307441e44bc1f285745293fb3e992d2d e74607851ff382c8f439138715c1f26ebfc320f9fc0b11c41c1c487a47a7fbd1 72b4769ca6e286a7b65002aaaaf1811d21070fd012b9f1076efd451df1303388 b50356a085450bbdd99bb583b82af9b32edbdb61f3c3e33127712f058cfa3499 e171f6ddfb67ecbf36a15f9d22e7d56db888ff003b4a5a5ca808937e526d3980 9ef04ec566bfee50e4c8769df276f890ae3c93b191ffe86163ca6e90589d7ac7 6c7427f2bb152f7b84f3c58c282cf15ac6899116e103de39ce38f75f57b609a7 07a27a11189c7f5b0a9671ffc1c3fb2dc97c98dad69b5b2d5fa34deea793c231 28a036f0c6b985823f43f188fdf9c52b9a05de098a4555b39e74ba74d0a539fa 24911f36ea3bc0e0d7bc982e0c482054a5094f8f929ba6bb0752a5b65831ff31 1165878d560082230ea283798ccf39de3009738baea618bc395323e307f20988 3c602cf24d5f5366869cb8d5403af9c85e4c845b8750b97d8444ef9c53bd4803 f7373dce0b83e92a0084ff1bb123015dd33261c2fdf0221239bc0d0272bbe359 dbae1c15a4158a06d4671567a1d6127e045b9ecf56541a5b1930864494ca6c6d b2541d4fd1342957a1988783628ef35dc06c76c31a2e184c1d7804a5983ef725 452daaa173a1fd2e6d2a52a87ad5b5d68879292b3d1960de9dcfeeca2c3c9f77 d21348abdb12fc722dc702731354000b7a4a6ecd11129138ad4d226aa1b8ba4e bf13b835fda96f716564d348e4f26ce80065787ce227acef64bd5effb094166a bfa6eb94663a529efeb406a58d94c0ba69525a6698dee17726a560b51ef9887e 52020c6c455383fe27b3f31e91e05782f44a27df8f63d27fd6d25e81a17528f3 0d504c54fcf530e18a9b4d22c6874b58c79206fd562cbcff1966f371804e660a c2cfe3373531e08bfa9f8f7dbe4735e0375467b7ff6552b704d3dbb7520ed20d 35c3dc90dfe47a9b435156fcd88b69228862fa358aad971d6729f8c47e9de368 836bf123387b12915838a7866c20092f3ab284252c99ce89227c23bba1684119 32d6eece067a35fde30d9e8141bb19725e4813c0fe32d19af0d138003470bb23 fd40e8e656ec438b7d90504f30f06ff58ae941d0631123fc007aa4198535c7bd 3b542d0f7f585f0d5470629c43a085bf05ccdcf033daeb005e3fe48c88880a2b a655e6d6316a40a74555ea7052f4795dd04d7040dc5a741aaeb0c6f7a0a42c0d 0cba59d705151016357f8879ae5af9e8b73e53c51c4e06f12b5ecf2760826520 50f07baf984dd728a2f9c8d172bb4a6a102bcdb95e9270af0e15b3689f1b2932 956214f28c70b1868c837398ee4afabca9596ad6c88883dbc9b69e7d2c95a4be 9fed9d4664177030011e8336c21987fbd4784a31cabe0c476d36bfc735f74c2b f973c4a4fbb6b9532132ac86cea2e4a35ddcfbe543c3eefe804b12f03dd33fb3 b5df1da1bb2e32705315b7a43b942578a0a7b8d4986597a70d6940b87a1761d5 de4550b795119466be4507c4e5a0a9d7cbb0c4ecd22f5b62cb466de1a5bf0ee8 5385e284570ed5983fb5d862afa1f9a1ef213469dc5672448f70f68084d0bbff eacc62fd8d9e41abd63348eba33b7e884c40390cca8ffe569e959b78b8131948 5b463ea41111200462fa16781e647c076bc653d5d6514587634a80ab504d3230 275457bf8e8c8f47ec6e14af215e9a42dec9db932228291902d588045d97e69f ccf6a7a28b7f5c6e46e7ed96a766764400b136193c64cf996662debd41dba280 4015997ff62d9271476e8160179a6f1e3a3d471f6864bb636513eb3660915548 7264c0d579d628167dd8045bae289e2fffb91bb6280887a32b498a76cd462709 7ffee2bf0ff1eff7471fa76590404015bd5cd360f9c6d4fb86e4176dc2a04fd3 67d588e44f37933fbf2506ac17615ec71a20f0ed4bcc2504da71a87a2c8c1bd8 4cf28a1953670a9259d73ad35471c2183988dce2949334acab8811b87c511523 995495e2c24eeeaf03b98555b9cf3f610fd09874fd27b9a68396c61ee13ec62a 62f2bef9a892d1809e4c110aef98196fd731e033a376f46e58628682cc06e684 8e6f3ac4cf464e613ba58b986759b8f5e8ed06fc3e64e9478ccc2efde73e8fb1 0c9fc9090611e0e53071f114d7bade8c3ee7248bd6d8a1293a25ad39bb8014fa 4b6f202c8367c256155e347aacacf35f112db84537dd8cafc97f3f52763302bf 184d6c62790370148fdceb35110582fe6505388c11df89d1ac252d452d738ec5 f4eba5b9cb7aa57e53c88254de2e2f177bf3a0aee7c08a9cbd12dec1f498964e 6b337d59c534dba39961286ab89a36482d75d573782c8f27b470ea9c4f605eb8 ab9d81c2904e58b0621e81961a91e18a6c76b4e7ea093f081f2941744ed6c28c f53b1d7265fd3bb7ebe8b8ae6c22c8fd343a24ed4cf369e83648450b8d5b16e2 fe9ad8b35cf3a6a181c7391ad273a2fd4d22c7035fa295545739416e28f6584d 1a609ed9f2d4efd4695f554fa5ee639c2a36b0fde38498bb02a22d45ca0cbb77 c83e3283a2c15ac44385d9878c2d01cf88eeb476fcb8dd9d076a126392cd9867 bfaf7fc2d7b2c3c24ccc460a017ec0d4500f8d4efbf4d1ed42e613021f5884e3 596052894c799b4caddc1be1b21bdb94dff3950c091780ea37b1e91f31224ad0 dff7527bc5584f8857ff8dd799308406494dbc109a7fdb0ebe689cc0408a07ae 5978fd324e180e92d9074d7bf47de1bfd6f63fc6385b6fa1b2f7499ba063b083 130397fefc498c3947a857b555081a567bf75967215092b7880779dcceafe878 682cd32c68f320a8067970d26511210482e6c9ff021c4c0c26030821b82d05bc 505af2962d5730a242fca7944d9e5d348e9c8722b1326df6700686a5b44e624e 84284727a2f0600a267442f9a8b035956c2d6e098fea97e87cd80109cf7a8314 9fa03b8f90702c8d3681172605d261223fd1e07bd8717475e6384e238b1e029a 2f7c98db71c6e719ceafb91bcf8f33865d499cfde4167a8d487f207ded52891d d7cc4267487843fa2346b42ae20f25df3b2eeadc7894d5b2b713165b5ca93d81 0726864ecb3ec903a1dbf674550856a8c2e25e5eb2190dfdf86e7345788d84a1 a74d20a22cbdf1b0aede9f522d180fe1a8c799f2154e9b7764d66caaadb90b38 f631be6aa0457a1dd847e9a301a488c4a680457904f0844c3711902487ae4e15 4e9f3d25f4c14c85576c81510865216e4f557e7abff7df9fed9920785e246e9b 6a2e58d84137973a05a595d3b2f13b0c8132ffd0e11e7de59da8d1c1d73593f2 5e2c0929f692f4f4a97f8e8e2d3ca7b434280ae374ff7b3bd2dbde856530c3c2 36a73824b8d7ca941f0140ce5192dd3ec6181752e90a16dd8ce6b5faa174a3d6 ce5f4a9c36f6f524ba8dac7892fe12097ccb5b5a25fb80b22cce70859827770c e3c9a23d83fdfc80d6993db11cd23ca20cb4947c53c9206025d6d4ea692a8b17 edcae5c60cc29aa61e79e92c45d50095d89821cba33f4ddb4ff31b810b7d015c 51ca65088e473eb7f6beae2e4a31809fcdd00b6b039f22a4e4d6aefabd35b3b4 a8979aa62f583a99398b4ef57da8d1af3ac92ad56b58f668dc4bc6806ae3bed6 1b1c669050a448d0f1f3298da0bfeb7e2c1c54d8d4896f2c830377297210fdba 47489ccd13a31a15e96a2176053d3b77fbf0a0ab6ecdb8b7009f4b0bd630fbe2 37cdc292a0b8838a358fdcce5842e5e09b808e47cd4afd50a0b26c6a0ca878e8 ca37ddc04836dfdfe87f1b2338bdd0817f485ac53acc797cd335af97eb83592d 0bc2fa63b90370ad8cdb9f0fec0693b73d2c154c69bc6289b078be7e36d12c47 efb0f27b2c42223fb5757fef01410c761e73a6bb00b66501717a264b1320f447 213751c19d640cfd1b17959350e66d8f05bd74f9228aed7967ad7bf8fad0d1ea f7f58cb326c954077b5c2cf9d19ea6210e7598487ef128ba238db8124b7c55c2 93672fe4cdeed9a3a546683f2599460e764130161903d686da480b22ee0c8a2d d2e2876111d86cab0b84dd8b9a324d258f2901f98b96af8aa7e83ae5986a6594 697b21a462b5de6a2831d4dc40feefd5e93428a035c8d5cd5a7a2f009d0e54cb 20c4bd9df48740fd20401f8d5e1c7952fc539ef8c71595458033807afb1808b1 fff0a568e77e301b8e0b3758e25134f54d93ac077d48d766b554704179484fa9 fe7d43f75a03b2f3297fb59e076487970f8eed22e1b36e49c8298927c4c974c2 bdf0f35496cd389e71e5e9b3bae3286f82269d4296f121da5b6388da3682f918 e121dca0c2bd6b2a806ff0d97fb19741189ca65c49aebf024fd229507679d826 079b5ec1fc8048652bb5db085092f619a6f7b01bf6d02da1b4a2f680a60a2924 e46f130b5a36d6c97c183a3781bf99f769b8dea8b62f23b50d7be59bca6c0045 39762c5a58e40845d7792487ed576bc9c180e6337ef63ccaf3eeadc1d6294c6d f4145b86b4c333bb8639596f89b18e431628b8c6d596d8ccaabedda7074ec6be 43fe8ace6c4325e2e14c184760b02e31d65aef0f4e5d010079495060ca9e3192 a5526c3cb8f7a20522dad6d432f3c089ff817cc87bd8358210f971f59ad99c0a 233536b60dcc10cce55ecbd7da907078d6b8cc4b28eaed1503598f07ac5e0907 c449da3611cca99a56fa3aadd8a560a0b1908ba36c05f7052d92d17adb23dfc0 3b7873db4012f11df2cdf9962fb75bca7c047f4704d83465973c174d949c69a0 9b93429c8838ca8594a6d6ca3a390a17621f0f9addb62470d85eb72a18931966 e1126d62f28b68b5a5479af76c8e2c01fb35d72b7b3ff50f917a815a341b66bd a9c674bb18829db908d7f518d39acb22a72120f6874c2908c58630574c0b2a9f 9ce6c87a1e454a21a147e10e5e1dc1ad8f27c7c2f90e85dbac4fac5c367bf257 dab5fd73a9349660df25385e44186218c3f49bed4a8d3927168a042a9669b4b1 64f71b640d330425f2ce1a11c74c49088244073a34e5152efdb171db1815e2de 0486c841b5424a4f356884e8a459e96f1a0d3afd73cebd8e9a667a6217249ee4 656c1fe95b1dd7fcc50ac079065ca2345f5f5ed12a64245cd4805d304862cb46 505a7e04d2f828dd4ad0b261d2271e1c4ad8e806f4b84204b7fb846a17bf4dfd dd6088438396d93d1a73416f1a19d249a56108fd0df8b7445554ef840f7b8cc9 8d1bff88e04f7e203eae1f8410ce9033834b4f231364bd4d573964daaa4f7963 c1bb78c6ef54632cafcda80f505bde76abd7999c9a1264b5e3ab1e71c5c247f4 eb470a1e0a44618d8915014ce790d6963f1a941a810e1c707cd5ff595100fffb f07feb2ae6987dd0f32e4f47b90cb2c0193c8a5db3dde1fd29c12c0f5b3ecac1 5d1aa5f7ce18164ae2040d771090e52eddedafae323c3e1054c892293d6babcc 2f1bb0ac71facf7afd516ad9317659a77efb716a27c9508383895bc897ddf820 c9d7fb7f9e6bf2ade77210ec2943f855af73213a063b18e4a98fbacb2d2ed051 613c40f0b9cae1e41217f700c0bd765ddc096049a6eeeee7e0772b3e14054094 035354e79a2ffee2ab7a945faebde4230d57088dddbaa0048b1edb579dd7364c a6cd9f41a5bf7be1781d8885f53a09231782ebd34646da92209d158299f2d333 b7bcaabd0c4d87638e44272847b86cfb3813eacc08552ea08c575be4ae3bf476 21b33d97ecc7b60c33d40030c9c41e880e02c396670eacccb101a0a70e7df432 02d53f6039620f26681c875eaec5e12e861eb8d44521ef58ec79fafc497a55f7 54dc9ed1d5924bd2e32b07fa85d9e99f617cb8dab7e296054901fed71f69faeb 9f0e6c9bff72dea8875c00de05fe6e1174b43473868897f74890769fe6763a19 e64e9974f1afd3ba845018ab83399ea3dabd86de84723098c28ce3d62eb7163f f0b22c3dc2df036cef0ee91c793d4ebafc10e1a82c84245c2a46338d0f97875a 5c5211c56a0f72f40543b907f06d812da77b1f99b6186b2a7c17a385f1b02ce3 8b7613e001292c3309d2267b03fde9e1905661fe7198b73af699d82864d0b614 13bd77f8cfadac674c9a16b6360f2ff71bf550c8dca13b92d9a890daae56fbf4 bcb4ec27511183c2f378c01a5ada032148f447f92f8e704ea9c09fab27a26ba4 ea1151529b6f1042a83e348260003a4494d50ecfc78db2f97bbc9188974a43d1 4f006b3df0ff1295ca1afdc0b9f2858ade2a7a3075e38221ca7a202b8b33747b 5419abe592c0eb131ac108838d31790e4d71edca323fc0de756b218df21077a0 be9e597d1287f4a73042e4121bb32f2c7b3f7109e092a21edefb41bf4965840e 5964f34aab653d2330f08a9f7f395702268bc63c32c32a8d94d8d02baee09678 36724fe30dfcf76d770961b62d7df6f5d121582e30c2656b59e7abce73091246 fbb20707b53e56493ba9afe848bc077699a670ea5dd66f87fe22eaf530d74360 46eab9881722439eb21298d016177f7eda8c7eae04e9e783c23fcc3998d6fe1f 4022c8b52962a0db40a4086f3658db98ebeeb8003f53d6b860dd4d087e88bf5d 6ce51184df49db470c67ed86ec6cc4f199d1f27c68b937b2fa6767d22c24b9b4 1aaf33dd63c53dee8d3df89b4812b1d87f92492b94ff9a31343f7c4534ef4b86 61e4f5cc3042f311ff0aa63ed1f0388dfc1a3710be9916717ddcbb16a092389c dc8205b9ffacbf333d50cb7c2072ac12bd39f2016d6697bfb59e048bbe7f02bc 43b06cbd5defab6945452cfc8502fa3902e9ff7ffdfb64cf9f466cb3392a3d65 aedb8ed9b4453399ba9048d0c8aa6e878805cdc6a62613df0154d3ed55a8e7e4 24c75b7c84ff4497ec036ee0abcd1d9a23eed4b54425d182f10f4b280ebb1c2d a9317911252a41d00e477915a689e132429e99ba02171a11594125e3a18b4137 c7246ae351dab4e0e4cb931d157f892f43f8086611fada48c8350d61b5d9240f 3c7d56a26e7f6eeeb060d8014b2189327e020759ab5f7b57948bda7182d00fba cdb60c00ec9b3a11746cbd9fdd747b30f7037394d009991e95b70d22dfc71ebe 0b8a54ffa0f3c38b5d2e93637a7342a2f747412f2234ed3a58f6f484a735b415 f86286ba3cdf6e4fe65cd8718cb3bf94edbc2975c2af7fa8224b224ce7553a02 d0743bbc1ad2eedae2bba58cfb1da9c3503875195409406f258a256fd191f9bb 348756cd800906d9085ae7922bc51a29391b5c0b3bc173bad4e16aa54cd09587 b568bb24f18b0e117fc2830475db4f71b44307bbe51f90dabed052766d74c19a 93970564c4be8a52477b09161ca899ac74ff0dbe507da45c20e8c757fd0bed5d 48addf6c9f12f36088b6b6537ddaff817fa1852a5831de7c7c785ab60609e3d9 70083f079826198f0dbc55bb02e506d114ff06d115b027b0b7bb302cf042db24 402e174c3571b2c34bda9f4d2d18f8d586df06658d37a894a49eee95caba7bdc 19fd9718251c6fc82c48efd2cc5ec7f4bdf847346ee72a270e82a45f64515b4c 13c1caf16bb9fe1a64ce81688718764917b6d39ee667b456f5724e23892e2b65 dd9f59aefa92accf59494d151665d8f4bccd90bb185c73f2d815e67f02fc217e 30271cdb4d3d6f0684d8d8d4d0c15df7cf5be7f3a518711a5c42a3c945f00688 bc5a03baf2b5a5b0037e04768dd7cd5e99e4a51ad75df1ba94576e58b3b87c7b 41d85a3c36652c3ca5d3889284c2737a8c2e22f20265a7080fba7e4354a65ddd f8d5e468b01c20914c32bb8740905bc13d34b4afbc27e1e4fed6f8341be381fa 6b18a03ae91d7e957e573271690bfafaa3044a8adb3025e37cc3cfbdb77c3685 1af07b99113ef4e87d4bf28842a113fa 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX8 %!PS-AdobeFont-1.1: CMBX8 1.0 %%CreationDate: 1991 Aug 20 16:36:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put readonly def /FontBBox{-59 -250 1235 750}readonly def /UniqueXX 5000766 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be1f91da738298311c1360c8158d61cb73427 3c21bce59b0f2e1d38c2fbc0984ce6a04f5d3bc84e2601397499a981b200b307 771141805f1f5cd7b12befe020f7121ec103dc2baf17f0aca1d0740c92a8dd61 12fa9c0d30cdae4f2af757b9f713c127d6ca02ef315205b81eff629104b21462 17d2b0f823133bccc80c9e400d6840db5fdf828f845313290fedee040d34f309 8f1b5a6b8941c81d1e607dcb310b14169cb433329994b4d1ac1b491e7422d518 2a8faf7ed3cbc2e23c58a2e310b56da54f51360556d27d58783694c51aaf62a3 a2db91ac8df80303c35cfd503341005020a5cf501fc0b64ff4f497951df6cd50 f00fafb04725d23bdd36616c7c06cd9052305682f6b6e521882922377b4979a2 e6f031b91b2a86d8631e81de17f90158ca05045c3b823da8b2d2aefd37a32728 45bace7594ceaafaecbf6140212789b3937a24cdd8dee327c934a9b0e328fd83 a1b535d9bbea6f0204ce5ee74cc30769734d4fa3dd0cac3986510c99ba062868 9285146cbe64caa89cc2f18a61d924e7f312fa189e0ae4deb913ed1cdfeae61b 4e0fe25f2775a8b2edabadebab4eb2ecf47258c1a77101c810cccd3b06633907 f765fc80bb1a2527f8a59c52760fffabbbac1d65a11708a3bea4557f24536773 d17dfd0eeee4e22f406e04765cf582d6ca4414f2441b6ff463c56018e44aa2fd c9af3f0480da99856aaa97e56b4bc28d9a74e6d74e5ee199932ba9548c9f5a24 4ad6d8509e006d51a96e77cf6decfe21ff0391441c8b95ace9dcb2d93694eb75 e76e0ef6fcdfb8a73c860e09dc49dcfea499450162b7373cccfe5e771eb05086 9552a2ff03a1c1c6a08405ec3ad93fa9c951b4aa746b4c4bf3f98a916ba7134e 93d777c339423c4fad91e1968b981744bda6f085de1cc197203a8d6bfd7239b3 331ff06d66401fedf2723cdb0e5a60dce370c8b62f8285135ce898031b66035c f8aa5dcbd72714a09804c532dbe897577ff02012e7dcc22d0abe7395ad090d35 982392b61e409725e38ff4731a2d00275aeada1e9be3d9e20a3fb0c7960df4b1 aff1b8d0cf5859b93495633d7e60f402e0716cd38c46eaaf83a7b7b81bda0111 4268f469c6f5b59266706cfe75c0073443bd52b4de6702e07c342fb2f9836abf 8def3a5b0c171c358d2c1ad6f91f4123f39f2654f9a04fbf7b92807415a1881e 9229f0321dfbec58ada82447a90f2981e1cba9b75a3b36a83e7f75ee4d6c70d4 53c153598bbf1897025573fa610d843e7fd73ac019174ce0b33d349e9f36e530 3d82b16ebcb1a4749651f614cd5413f6f367f0db3ba7d2d74bfaeb3295eb80de 0a532d046f4aab4d09f0303ccb4a357524054fa09931444b8d7002c5cd36a94b 49a45505f29b2e6a7eac440114096ff1b7fb1bbd0774ad81339f2fd1e1ac8a7e f694bc3b2baaaeffe34191d3c972d8250e4c975fa2057e39648ca90549c06f8a 6e03ffc9f39d8990e92328f850c037d0592082724727171b3757c0c19760e28d 0522ed2a475ac127e92f2435c39f88ed180845fa5ba9ffcbd8d79a084cacaa21 e2ad36b490f6e893af458b352179bb048cb127464fe6531089f643519848953f aaf54d1a7f9275fdb339209d8ebe76581e34bab0613cda21780c71e1a2de1485 d5e5ddc4a8a387a4dc87078a4210909ca42acddb0941cb5a721f2f01c34fc20b cd118fabeedb96f5c52777ea4be418cba3c92bb0f2262a4f0af5e89920a29512 d8ca92096b2096423421d0afda1a75ca89b848860835462a16b999a75dd40166 1dcd4cf5342b672dc7c7b932c115a0c5f1b2259489e3af0ad35dec985ad6546a a21019e493d43a99e35ea4a27e8024bf2bf2874737125c3bdf64b8d7de9ea36e 652fd92b3399d0b90b782b32fd8126ee49ada5a4a74f902b789361e1c2cd20bb 9a4719709456afc8bed5ab977c47a374c48e88de8cd1c79e5ebc8f75830e0304 694ddf3e5561ad7a88899e657e5254effaaf4c67f3ee6da883fa772474a721a5 1348db52a3a736d49d81a8a7052867fe25b72345df755868ac9af38cdeb06811 700386ab85482376001fbe348207e50ca09f9f13dc3d3df2758f2bf66da48d6f c6521d4201035cbf96b981e4f507dc586605c2381bc4a268e77db7c9e9450661 90f8e5a702ef99abaa38fb357357aa206ae3677cb5b8abfc16c5293599fb07c0 3e00cd328b334a2f4bd9a14a242048ce0344bf49f969ff42328eeaa24af73c2d bcc2cdf3e11c5f88c490d548dbecdb9e32f949b62bb6ed6fca6a7a171132872f 1157f80ff99f52402cd6225120b5a1adc61c397734ec4790b0991471967b5e78 db046525d168ecce93db37803abd0c6c31de89560b25b99e78f8a4b6b480fcd9 7c91452c01ac0d08ed094eeaa34d64655f8f9a048db98b1f2d4802ea4cde9341 87387ea4d5b2d9d1ffd9159914f3ce28f568fe1a4a0a405c0e227498396d2ef3 955eefead4ad86e770dd754e8c21e11d370352fce0b29ddc874c80a4c9efb18f 15be349eab39c3125d8c8afd32ccfeab5b5258f84475bd8f2a81c94faf32269d 6edf0af429c433b93583ad8ceee57363ed0dc4dc6017d7f9c89aabfde28a6250 98665606acd5edf93cbc8b749e83bb92d7421cbe1c474e513d2df1b783d25140 1cb4b21475884dfaf560403d98f30b41c7a08407f65793fed103966ed57ff72e b7889d42f157f4a0fde5a18176619f9af2f5083eafe2b682c5e3d78285845319 d8c6f39e5e5e261823ad79932060caa5889f36cfaf5c78cb3b82abcf935090b6 384c7299407b6da66a3300229160a5fd20799194deffafd8d8249ef9278c21d1 5f481167697d858c7b1287a3574ff4d870a080273d734a46e13d3dccf2694bb2 2b2ae395569ad9ad2769d7fa0da4e0c798f9299906371a132ca0941235dce341 33523f9db84daba9bc6e6c3a6fc36889a8293c6d63a2ac6a19b1795299a1c12c 0502f16c60c5b212a7a1f02e9158c0af49a502219fb15ccfccef9482aa9ef6ee 53e01b83efab04385b21f2ea3b96827230f8a661246afaa8132e3d901e8c29d4 3e6a2bdeee47da3e6711c4e4187d4841551c0dd7ae5b13ce7b2a00ee35455d69 f9aba9aa71845754c6de0b750132845ad230153d7fc07e9544dcde596ffb13a5 c718fbc24e1bcd197c9c7fc6705b0452706e928fd7c191ceb8ff16c5447a7e63 d849c4dc779f3e8414875fbc9091794cb6887eab085b16d29d21d10cb5e14e4e c59c06001285e1345044a23e9f147e01351010749c40f75f193238d29f117207 1a7104a69e3f87cf9289df1e2edbb0a09c4568008c01686cd25ea8da6b6e6102 420c118e8635c249ef40559d715c12ec061c4f4978352f7270adf068c0c13cbe a49a916266dbccc45cd9c6ebf8be577f3f9ba2c0cb54ef571a57928e6cc6ac0f 34d8e0f6be2209a19176a76e162eb8421e0d5c059086b7fb3c8fff8aed732102 055519543f5c58c0b9db7e8721a94b3c8e31d23ad0209f32ced8529587e3ea7c a7714b85f42746e2562e63ea2383ca4cf96362c1c0e04dedeba6292c0a5ffa71 77018cdc02248a48ec5729b16ba03f4aa7770be62847c63e687c049a681af08c 08e3de3238d282a1436665948179283b50a8b51b9345be8ff569c47d1ee2ddcb 9a028db89a95747a5235c8bac6e09e43ea9087afb3cdc68c92ed3882e70b719a 7e5a73255dbaf113e95547bd625f4914a58932fb392b0114f33f52235c3f091f 1088ef946033f8c1382a0ad4d1cb07e3313f0c22e5c61d120356e6354aacc5fe ee5b8de7673ee8c320ea13e90c788a86edf5bc7fea26020452545cb2ca8492d0 84efa315ce0da04d0344258f4addcd3c4fbee6ae0076c8fe66bcd44dd4bc0f0c 9f83ad7a289178698b9699f8b7128b6ca5e1af9a26f38d2e761ae72b74fb2500 f8e3b9337a2786ef65bd7be9b058e5e3bb87eae382236328bcb7ebd68ecd625d c4b46079faffb265400aeccc39dc25fa0a52829bca04e8af1e29cf54fd87012a 9e88de11e347d275a0a06720e94c03c463a6f2301061afc2c242a03ad80d7d82 c0f7144ff04466dabaaec5ee323962c94ff50303b540739eff0c1d922d0fc7d7 00b500b49b86c89539ffe0bdc3a39e52efe72cd082bb3d3a9263dc0b01735fd0 39524fada0f76b9de7c0940e562cbab4dd24fa2eb3e75eaa9d9c4cd1361de7b2 9205bc031be3a414154d221a6f0d8e787f1d3314202aa50040980d8ffd98481e cf2c156f1fb3367f3dfd2cdcafce4c63d598dcc51ddc66a5d54a9a73fd8ca5e2 dbc5a18d5044e5423cfa9d5a6ab7ce200ed10ce885316dbcc5e5721df4e12eb5 28e139fd076c840b87c554d42154722d13b6c51bcbdd0c994035bd4d03601659 e765e25427d1ffef4127bc565acea770b2a30ae8a4f41976f18fdbe36d8db902 4ed1d7031fd1122df5cf0549f21bcbdeefbf451fc7a28c9e2391aacefb32ca2b 2913f848e8e2a7a3829c593bc4c87882752506bab09c7bd8eac4524e439cd621 0d223322331bea4c8119bf12d1a0c35373ee7939894e3114c089449a73311c25 aa4516b8b31f2b768a2f8249f973d27e1d5a3453cc34f083aa93c8cfd2cbdf65 bbfbb117fb05ccbcfe40ecb07f51c8c1d589600bd3caef9a2d41948ab38f8320 dedf25d26e29ecfe09bf596bb94bc68ac7cd736b78c1defbab909f846fd05b2f 8c396a61c0769c277a5869e51319e0a21a71928169fa557de1d2fd65964ba469 18ae7dfd30be35fe4cd460c5cde8e75c107ebd29921c82e543d77fcf2c51cbf1 b1303d29e830f71305ceeb08fcdf78c88c46708f360bf565d51c291c348174db b34b609641963d34835b4752ba86aac1d08534db2b52bc988d931d80f85c779d 1624c48639da179efa3f2f852faf791b9cb6d48dace49a27dcd2b64e56371d5c 98b33e9384778acd8a36a766989c749d8bf9d7d3c6164629d4e23bab0080f918 baebec1774910f15682626c5e72514c564fe369b1ea11b1b4fa8d02d9bb57d23 db074451ed2949b26277c124bc7f0d01eecd61879cbea8f0a62353a60b434509 ccd5b72aa7673cc2a7b6262b1235cf6de374875c1fb6c62f49d5676e0d6a5ea0 676ff3a37e7ebedddf495f06765b14f33f26939939a31e4c97063bbad3fc0568 6b1a9d43325e5a5942dbf5a0a138abcd5f5f9d4ca2053003544ec6d429645f71 24181ccd4de02da983e99e0be011c30cf237db51ac5ddd66a1fd61b0b24c7455 b8c04f26b6e6beb56d2968f09b0553ae66cf9e4c77cbd663ca89fb27d4f5c1f1 0461a8d2f6abd3d4aac5dfcebbf44ffc145067e57d4bf01cce9fa9db38c32b09 3184e99c5c624a8528b0c865daf77af16888687c9dc3969ab8e2ad43a4890d5a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMCSC10 %!PS-AdobeFont-1.1: CMCSC10 1.0 %%CreationDate: 1991 Aug 18 17:46:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMCSC10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 67 /C put dup 100 /d put dup 101 /e put dup 114 /r put dup 117 /u put readonly def /FontBBox{14 -250 1077 750}readonly def /UniqueXX 5000772 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3037a112066957 7889d67fff57549064b985d67ede2fb03272083723541051ebe936eff01a4ab3 cd845d565dfdf25d9ddd2792db17f52f894bea484480f06c832140fdd6c3af0e fef0584c6b78b5e2bbb9a752f10581fd1c48cb498a822afb18cddebba34695b9 b418010368fdfb7bf758d50f3af03360b81c776325c33c9c81130b1e1be840cf 68c71ffd091dccc0df7b507fe8953dc3836af0da08ff9ff3e9cf7288d9eb8baf ffac546a0fd987ae8e0bcf7b759f4408e13524f478de5896d816cb0ad2904271 cbec82a5ca50f0598502b434ecd94531b4a65181b5b3afcb650904b15157737a a4386f1a7f1252caf2adbd5c8162bf3b065c01ca471d520c884ebbe1b29f9549 134e285dea2fe158c15a08a744cdda00bb6c62158262e24702803d9e1dc1d3a3 1383085631154b077fc20488ee3aa03f47ed2766644330b94133f2f9389b99b8 96d3707d1c5bb227fd3bbdf3a6ff572bf07164107c7a1c0710a5c7cfb67282f9 c238100fa138b75c553d7cbef17e2292a320d3d86a6210e6e3a1e590b10dac6e 177094d5dd163db623d7b344478752f6f3d7d5b3fa92e6bc72dc6fc343d2f946 9153e3d14c5a6d6b1d9ca52947b789cb4cf6196a02973aff0b097333f8d615c0 a1726ab7e31c378eab77150faa28cce535afe3ae5798402ca51cbd18dedc2c43 5281d0781351df30f4d11761579676449ae4a47a10f677cdd31ca9120fc2606a 9025d3cc09d58856a9bbfb17669f706ff8c7efe37a3656c9b20609cccb58b309 0595ca5666833f2bbf884aac1cd632fce69b4e0ea2e0a25b9c4d471f0e322e09 4cefda321359fdbe0a82656d3ecaeb68b7e0c7e733d85066ed7474c22b67169a 1bf1bdf7dfd0ce0aaeef78ee393ce6ea65edc1fdcdf3f744f714005d8221a156 4e75f39af0f7cac55a62a3c7c8b8ff93dbbf453ac931d574f2c37951a96832f3 9c1a9dce425f0f1729c2acc530f952c802f9762798a141d2aab63a66c51e0e23 136bc3dc3c8ed9df21f2c76b31fac4d634d63a4c147232cbbc4f964db9414418 c12f11f1dc8e4290963217f368727fc94d9f0aca2e72ddcf38c696628cd3b430 d4dd7752c936ca4ff9ee5c2e7a56e9f0ba080d91935af249c46c15138a079ead 6e86e6c3281e14cb0fb72d7ceb9495623a6c215488a9b7c268f2dc66a996927f 2496ef98288b76006082f5d5c51884bf54fb073dfa376f69b3620dcceab2dcb2 d2639fbdf0802e7f1e096727ac36bfdb196a23f17a4a50c0fcc4ddfbdb915dce ba257f2208e481fc8b77139f6829d0ad63b700cceebfdb55decb43ac7681ea0b f6e6965c5f6f45d14be188c48f47f15824b5e07519b9d6c81c6d29f0839b29cb 995cbf5bbcc7213ce6e60e4ed84866c94b3de47093e78d8a362fc1117ad0553a 059467a675b36c57712d2d598c5a38cdac294c713409ee8f257e6b1babe7c83a 5a9591359890617f28ec2869eb98542e4d77676d72d9402d6e8f00eb33e46d00 99b54dfb0fef668947399c133d66a9b013698187a75397b60aa4bcf225c1d277 645d88e75c57a2421a4afd8bd8951b57276f693d1d9f583b9f6d5f886f9430cf 1fe00af032979c38b00f2eb7e8e65a3bbd63f0aca282d7322e129749371240bb d2d98e3cc52390cb05cc8332d7fa5cd46c33a8888a97d8e92b87f7a3098160a5 7148fcc1e850833bdfbf24d2f9dc760824ac1b929e8779cc767e13987abd5a59 8869567352d49f4c4033c074c6fbc2999ae08ae81c72c7c1f790c2b8aafad9e3 b70a70a6960c8da4c92efcfb7f8963716441fdc7644783c0b7edfc68118b21a6 35dccd8d1bbd8e8b66c7f520b6dfb36dd6605fee6bb24faa202496c1613eb891 e661d5e595bc89abed3b599fba1e027d71714e2287307202d8a4d7647bd9e996 7a01c3278fb9b83b08045bf3e75346c6602d1cd867f3534f535bf7c6129ae861 1c2406794c93dcf4286fe3daddd13ac783c575dca7353c77b0d4884d55d18097 e01895573b00a12c4be2ff9b43e53328b6b964eb03dfeb75cd2eefe2b431501e 1146466671d65768489d405b6f91c9728df00d7b32998ec7acb345e59e176fb1 395aa5a628862a262d5c9d2f9697e10d2078767d58fb9d074ad776ccb4d1b2dd 0fceff35a3247cf436a0d2b41fccb2e77a9ffae8a28ef22c6acb4a1570f08b3f 8a26c3a14adebe43e602e05dfb4fda13d7dc0fbb84efd9fb68a1d3382af89877 f816bfb6c5c8d0895257d5b7350ae5fabc6261125a3b09df3c884415 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI6 %!PS-AdobeFont-1.1: CMMI6 1.100 %%CreationDate: 1996 Jul 23 07:53:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /beta put dup 77 /M put dup 78 /N put dup 84 /T put dup 100 /d put dup 105 /i put dup 106 /j put dup 110 /n put readonly def /FontBBox{11 -250 1241 750}readonly def /UniqueXX 5087381 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3 038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225 dad7b4e6d6f9cf0688b69ba21193bf1495807e7a1e67ed7e41cc25acc04702f6 8ef703e3d45722c1a91fdef7100a48631a02a6f02a08c6b1f9b4df8310385b86 8632718fd87119a233f219d9411383b7fa9f3e4780d8c27e2e89e0cae883d664 c3eac57a3aef8988a2e9f0f8c7f53e0a80bdfc4620e21287d0390e1975398544 7f3ea66401024bea75e1b4c4437b7bb188f76f96b918ac7c6ad7e8ae7f21d8c2 790f08cccec904fe48ef39e597ed4d4237c1d1f596f5906b19ea308020f7a35c 168e327ec3246b1dfabe912f6b6daac09974876d3996e57d180261110db05f15 e3e8eebba3d90b5764c03df3033a1ed678ebc679569a2fb297378b25434c0f20 5313ecb8a952f07242d3ee731b0cdc086a4481178a3d65129c47c09b22e9c431 e11b3747b94c26a757c38d06001798c6a568303d541385244b967d3b1786edea f65bb53c4c2fe75e4b1b15c2c78d930b4296c80f08bad86012451edc8e9f0854 c3b390a16e27b11b3d45a9f72eff8baded2242dc928a61685d79e09681c97425 5b90a498614cf560fa5b1718981388268ba206a96989e6d0b5d485d9aca5594a e67dd7b34d8a369adb06647f8aff8814d6d9cdc04a4835918e557174c5bc0f3f bcea9907a04cf93c12727ec40db3f2f77596dca477862747435bdedacd9b2311 6cc97fa47ffdd7d897fb6bdd5572e35d34e7e1cb5e7273a4ffd86525323ace4a 84e1297028c2bd5469baa2e75d19360c2c9042139d5e7dd4390a6a3935424711 de21910126d750ae279916ceb71da3591d60dc62db333c5021e2c1cd61ade51e 939a8995b7e0f7a6dc2a9e9ea4fd8b87fa6e5218823cee9549c1b05b26d2d3ea 739ad23f250f907abc8a7c9bc398672e2d92b77bf6d6e31dfff2723b0068293d 48a5400da0a0318bbe41aeea0baf043183a2aaf638a51e324cfa5453ed8dce97 1c45cf2518575051f4ac3cfab9ef38e6e80de1eff2328d2323eea02fedd49146 e78642af2fe8de4bfec1974af30330733e1c8783b1d03ef82361c1d037155082 7b9b9bce16d8ef3d9167f5330de9ee4a744bf0fa48f0512ce2dad48cf5bd7ec8 d488fb283819bc4a82b974bde97e353b85922553063cdaad8c4a6544272af931 9821b4fc48c60b7c06252ba2739212dc79168820e26376cd2a6e9137314bb8a5 e98334c9f342ea3dfa3f576f732f1f48826653032a6d45d94b394083ccbeec81 45dc627468e7502f5b8806a95688fe61c33e43df5481d510a3d73e6f7772c9f8 33efbda8c8dcdf7e9985124352d65d2a3718dbe60c2fa5ca4f4b5ce87c5dad2d a5c3a5813bd5e4e2d0f562caa5e13980dd1420b592db7842be11332eb560f64d a31fd9af37530cf61d9ec6de1ed328888334947541ce7445717c84e74606ffa5 37a68744d7b59dea7fca0d848328b655cea22fc94208704772807163d7b34166 5390e823d656e8c7647aba015f4efdab99645ebcadbb6cfacc96216142492f4b 8b69a470a0657d7f3b24bbe3da009f4eb7e55384da6e49de2d96b00d693a4489 bf9dd748bf819e97045343faa3aa3038f36d6840a11e62a6c21fdac03c41da77 7ce07623bcc98b652a29a3568439b053435d749d11e83036d148d35a3adba370 78aea18423243f6d60f2f79285821ea52ec0adbee82951507a9845075db76df4 710dcc59e8ebf327464e634fac26f78d8f7afe6709142e213e8f63338f93a776 9cece3481ff03892208539ac21059369ef6bcde38bc1dfdffc5c2b0ebf4e0005 a629358c5179d7d159e21c393762f282a95b5bb36dadfe3b1c1a5932218b3258 694d07e6de6848bdf7f10e269e52107df713c27846f804b684f499cc443958cc 605d3b9ee1123546770bb48f751c5c15b9d5066c663f0a6349cdda136061eab4 c12ca2a73c5ce149ec47752355eb872d057e3be63cc3837715485a980ba645bf 7bcde285fe617a0457cd0d613bb441b835d506cce3dd4d22dee24f2171d2fbcf 5e71ff358b19ebc0d2ebcc8be75a797b92652d91da15b3caa6c4ad4c6748037f 948ebc8ebecba91f3ca9227dd820e446d794938e9af3d29dc2f922be3cf69060 40363db88b01c4a2cb8702748d32cf90cf3069a0000dd6d1a6e628f47fe3d447 2643c056a020e047095104caa9bbd8eeb6e743bc1c3fee0144fa7d09655eb755 32d8f40ba1abd6d643ca062e8af8e52744024e4836d9755d7803af87a84be277 64720047879f33b023bfd67292e51852e6221846879d9ba82613e16997a33a32 9d163ef036d45afc303750ceeeab2a946d0da4e6d8ac5d6413ebc3b05064544d c946ad9e3d373a18a07891f2da83e916c4b913d5c1ff851faeaf872b8151c47e 8a3ee6214a9ff4ce4f80cfd891a25347cd93b4ec3f7bfae76f55887e0b3b9ae1 c4d742d9de6b40a35f4eb9a2a3d2b14eb58fb53842d38326ad848f583b914883 fbfdaab78de4f418c095324ab2d572573ba5b5350d17a131770d1d5279769b88 2504157d0f70d0def998bbcb45e15390352874af711edb5cbacad4af9a4cded2 131efd1d38b06c9466632fa153ef9b2998133a0058108fdb20bd8a922bb5f188 4f5b66ef10056cbf6a02a10eacf5c15d9e30ef860c441ed365e0699ab358cfb9 1b72800a989a98176802aba4d12b5a763f33924221b13d756454bc0bd14ffc83 cc13c1c61db5148cd1cb7b4c3f651b148fb802bcc3028723f93407911275df9f 2b0496fb6d4811991664cc7e0c7d10018444275390010ed0af0c1e912aa5e4d3 da896f5723813d9087c7faf4e936b29e9e129e3da33e96e7ec21236ef42666c9 415c9bfddfbf2d70025845a11891dd1d153c8302c832cb642b57403f7b8f2956 7efbbf4ec30e8e7fedae17cfb95d5fc8e84cc97ced84ed24e379bcd0d4e31b3f b7da9ad2a6e104a2fa1b8d383f7bafbac50edc1274ea12f1a9a77b3984f57d63 69159fc8220703cbbd6f75abb901a8a8a4e3269895d1adf423865dc1514977af de335defeb8536858e3567be55b37c16da431cfc63c7b8b627342eb4d4668649 263bdcec93a279ab688a3a5b982e89d94fe5bc5d7745fa0b363ec8141edde21e 63a023f6c839d8dc0596865d36a3d7cbfb6d84dc9264232db08b243e7d12fddf b9efb5f1a632c3f7eda62f1d159ef27a2ab7e426951c20657b982ef95b596c43 6a8a45cdab52b843e012299ebf1f3312d8a7f63946df9021a1e554f4188f1762 76b70d7c821a17a5741f9cd5f2afada52adf9e8e917f7d309a636f0bc36d9e6a 547491ac88cfd8225c3ac58bf47cd8f77b57e6ef211ce5001757deffb320b54d 6d171ffeeeca12019ca289b112a79d5f5c34fa3e81c322f7dace2f78d1058aa6 f94dce37173e8ed936f7eae4c51bc5357eb71c394cb79eff9a485963eade93d1 ce7aecbf65f8c50325908cca2f2adce250bd3720518ae8e8f32c75ac616c17bd 5e11925bc5d1ed0fdc44054454951d3f8366482f1786f43ddd85eba86c876f89 9c62271de60d863031ed5b49fcf2da0418a4ed905543acafd8d4eb0846f95c96 c10461a3cffb32f468bb2227480cd77d8e1a23ac67fcd2f104127b1132ff6055 a1885e65060c333d7884fa848d9431b16afdc1ff2ef33bc43f20a9b5dbffbb74 640f61c6d5e8cabf4e795b8298e2dd46d4e93c18868199254d7fd132b42a3b9c e7fa5ccd0e6c949538bff164f71c3528fc02a02e0dbce2eb3f0fdc06516b 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR5 %!PS-AdobeFont-1.1: CMR5 1.00B %%CreationDate: 1992 Feb 19 19:55:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR5) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR5 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 55 /seven put readonly def /FontBBox{-341 -250 1304 965}readonly def /UniqueXX 5000788 def currentdict end currentfile eexec 8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8 97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc 8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011 b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415 50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e 784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202 3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4a71813d2ffb26 445026f89b4787516ecd1afc78f8bd19e91e9ccc9402e8c36d2449c1ff850a8a f61165aac3fe931332dd28e261b91b05edd18f44ea7d58a8f35fe88493b64aad 6bfac3a0136215fc2f4ca8e91d70c5010e6f4013e6d63b44f6fb00afdbd7cdb4 5ec5b1d9736f45cefc8a0124b815987cebd81bbe0d44dedb2d5ef37923b3d551 abb6a1cefca7868fc7bf3814ef7d7b6b1ae6e869cb77aa29e3d90b12b0dc3ff6 ec945922b5899bbf2f12e92731486d2ef1230c528bf8d7e0ae09ad7632a38966 5963de49d1ef3d65bc483e4a577b927c940f5e121169ba52f6576c85793e5fd7 7f5863c488e55bdefd5d8b2514795533aabbc12e7f51816c7e1484f1c441aa9a 66a5dc77158e79cd6692d299b95e8058b35e771a6972d2b5eb1cd6d2bb8e835d 361a6eac0c90c906aea1cd75c4412a1339dc1439f93e59917311bf20af4f2bc8 bba5a4626f75f28a47d4595c37f4019df480d9385975159142618e22e964f019 d88125210e2ef21d65baf500adf802297b24eebbf4e93c617a613f856bd0d45f e17a9480980ef83950bdb8ebf208c895ebc4a7132f0765b7c19a332ebbf8a3c9 ab65063a42e19ca9d43dec3de7aba46b9a5d24fb93d615c0a1726ab7e31c378e ab77150858535b91362ab0e2b968dee1c539964126d937f9d4980ccefa92bc81 b054996a65a13995c9c9d819ff05511cfc89cbfe67447c940405001d61be633b b771eff383fc6977ec06af30f981504260de7b9ec97359974734f495ac073935 fb30e3700679092ef5d971b6b2da0e15960f2391fa6b63c33e7f56b4a9b86951 1d3686a5e8e613a69a0add8b8c73b127ddcd397a48d785079e786d24b31bb502 0850037529377f7d1ed88ee66c914ca0969532b9aef88a42098056bc205f220b f05f742e3f1e51fb80fa45274a74dfc8429d38b52788144aabb75782883365e3 b0d1af77569961f6a2441ab47a65aa4573f6cbd06acd901e184fdfed03a5555f 5533d13b8a036b02fc0c0a1f370892bf4607d7b8db4e24f4bc0d17f6a51fafe0 038bd4ddaccb0ee66573ea492c2e6be32f2ee6c123ab54834a131bbcc902d70d abf49e771553b73491757895bc020fc065b59366049c2cbd5c10f2c9d60696ab 43e49ec4c13c1ed20f7ca183190ee1fe40f3a0c65cdfff19c58dc2f9c345a95c 0547f91511d60b2adbfd2adbdb2d13a8dbfaf724f9cd7bab5a67496e8f442706 c9fe915b877dfc1e4916dd8e60f1c65f9bc7f6ba4eaf5b0c69deed0381b7ec7f 3eda425ea1ed33dbb144972d1a 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMEX10 %!PS-AdobeFont-1.1: CMEX10 1.00 %%CreationDate: 1992 Jul 23 21:22:48 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMEX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMEX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 18 /parenleftbigg put dup 19 /parenrightbigg put dup 80 /summationtext put dup 88 /summationdisplay put dup 122 /bracehtipdownleft put dup 123 /bracehtipdownright put dup 124 /bracehtipupleft put dup 125 /bracehtipupright put readonly def /FontBBox{-24 -2960 1454 772}readonly def /UniqueXX 5000774 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4 d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828 e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4 7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80 523f59a30d195fcf9b9fce4ffafc6d5649664203ab24acb938d58d246707ffe7 d62f04bec4b70c21ef75beb2b812622b3c74e969d72d3cd11bd7106294a99caf 0b1629bc7d4de6b96ca82930831d64575f23f4ad06a0e45e315b1d392411be8d 6d73c998789ff258a07a3c8c2057325784514c845500bfd1a971310cfc11d41c 1a167dbd5ff012c60add4e87325f6e5299032a839de65fb1473a166aae1876a4 414a434f22c1d241591fb36f857df6fa930608750ffc0c54f44994662b1f00f1 400bf752ea8d83ffc4cb77a290bc2d99981ae59a191748ba5c7ba1a9d2583fd2 1398452b6ff5d83a059f7eadcd2ef744e9dd22bdf9c79d049bf06835e878c32b 7765c69bdd8ef4deb4ea7cfff4cf9354a4ddffa689de961d16772491c7afbd7f ffde42400764c68e954ee5c455a5687959829bc3b319b2147deaab3628662c80 30c5e02fea09609abe4eaa12e217bc3af673f1bc36a7039eb13fcacb4218fe0f c5a3f9452d4edf46cc91db67b624d4f2d37502fb9f11af4da18ca40b61097f95 d44329375467ed13c5cb585ec53f62b83ef9502cc755af44bf32b87b8ae9f3f2 f8dbf72dab90acafbacd280db6aaffaefdff6d5eff26669bac56280a950560e3 d01714ba38659b0e4e28bf8cdc1f15ff7e3ea9d95a6afbbe3d8e6905aa6d531d 6b6dcab89e2036cc492c65f76ddcc3cfcff33fde3d9ffd10f7a90530fd5c7683 4329baa902e701ca42717476298c9ff511b1941244bb1dfd0e5cab92a43970cd 1bdb292eadd055c97972844fdcdb0aa06401e7b2632b9d134f96bce0064860f3 9859da7a9a82be0a840672a1331212752ae1b521b693b384a72dba8d37a86eaf a0341e7fc5f6ef7a8c566aacb91e8bf5005c18837894c4eacff41dba54e071ca 83f5e3715ef7b431f1a45424456653074011de9e5981647b1540523b58329267 73f280f4b8f242bd63c7b25637ddab95678e456d4e4e20d9d67fa144486c63bf f0342d57adb0de18bb5636ab4dd667e28a2a86f336a35f1cc3aec33b94fdcd4a 695dd1bc860a7b4037fce36cf6eb427f4b163c8ed4a4ccd623c0ab853ec3d069 42d947e78d8b5f53d9c55d6e6ad15eafbb618361a2f9f7c934f9e50207f7d057 a326913bcfce09a48cff6395de88e9ef0a0afe43c5cd627b1dc2d43f72838e75 a59297ed158315ef0ced6347d4524bdb862cfdc0839e392bf658cf1f91828cf7 5265d6ae379c6ff1decf6a4c93843bd696870164ad8e404010c50274b9c87e5f db85f3d7bffbd5b2c2f855e77fdada713c335a63496de505091bb42767783fc8 898344dc8fce38c405858c703d74736fd5f05fc12c0eff467d7683bf5fe088c0 fb8fd9ae47a4e6f9f6320087495f859bb548204f7d0a0312aa4bf50d13ad82e2 4797fd51656fd8b16fe126bb4609657b64f987519ac2d181afc1ac42b734f75f 0bbe04181024a4f6d61c9893aee6360a6cfcf76fb895e344d84b853f8793936b a6e6161df35434c0eeb3d3468de46a27417375102f1837fd0a1ca923daf0cae3 18db892167a98274eaf78d0f6099e1de363b0a9dd68abe98fe2042ae78ba95ca 30e11afef3d12f9038710ec0d7d2ce20de2e94224d0c2828e827cb83ed8550c5 831cebdec0edb1bc092d7a8b4205a9640aee67cf5e33d32ef1f4fa555edb5ac6 49a2fb2c56eea3f29558b18c1b98e2b91ad3adfaf7c867b8880b18970a0fdb21 b15caae97ff5c2824f0a729c7217bc34a2c4f54c97aa89b956c13a5d9ca773e8 075b3d6d6f679681fb956bbe83f083ece70fe4a6454cecb14dac8eb55e19c7b0 b0ee287c1b59e164aaf8f77e80a92644377a8f332db6f04ec630c93f61c91a86 20da5dbef4b513867f7a9110f2ee871a9024d35f4eb9332d251123db8b57c243 6ba1a192a24937e85af5970810f8d7c75bd93dedb0b4f66ca604f2e12c9cfcff 866385b43e13bb7737250c3e57cfdb274660166d6c0ad53733f883f79286b0e9 93cae7f80df8f415bcd73f5cad0a3eecfc6031675cbf80efe0cc53273de8c8f0 259580e21a1d33f30714defbe1f53a15fafa12da542e1cfb29da63d509fbc7ef 6c3316a15d7ce5b31ba4322ca411f8f55d33f3fa4d46bcd7d3a1dc1b32edda52 958287088843764688145e4ba05ea30f756657f80e341e9636038e807600ec5e aa005d2384697e211b77516f69a75ba834bf5cc70b777ef3cc77866daeaa2618 5efedc0b9c68462937603461f12a8274f125d2cdb9526b47d7397302892fc4ed 5a170f87cdef1f6f69b295351a5eebbc9b59e2355f61e6fca533957376f97a7c 2b7fb07bbeaf64e1e1f7e4352f1854d61d641394373104b1a895c01fba4349f2 01f093a06939630c3954839a2727043868934e5919dd2add9dc5a2dc0d6c952d 570cf5e2889542a6e65bdc5f8abffdee19a2aa0b318587a5f115d88d70188fe0 7969aedc95931ed244f3691c101c187c3137c51729bad2094d7180d0882690c7 02b1e9075aae87f83aedf775c8858b8509ba10939dd978d430052a65a57674eb e390e4665c1aa03a0d84b22c27c75499094565bdfa3f08d9fd06cc1fe488146f ed13390767fa2972a6ccd93ea5b9ab1fef1fba7b542fea690b76d29c2db38551 ea025bc60c8fe2a8fea1ca8c7347f20b9af9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMITT10 %!PS-AdobeFont-1.1: CMITT10 1.0 %%CreationDate: 1991 Aug 18 17:48:50 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMITT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch true def end readonly def /FontName /CMITT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 33 /exclam put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 45 /hyphen put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 67 /C put dup 76 /L put dup 78 /N put dup 85 /U put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 119 /w put dup 120 /x put dup 123 /braceleft put dup 125 /braceright put readonly def /FontBBox{11 -233 669 696}readonly def /UniqueXX 5000779 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cdbafa8977dcfa841fdff9afd3a7a7c7905c219 28506d4d50a72fd1db1b54a855775831bec099a567f3f795b812ed5e145213c6 d5d27f9ec6709245e9e4068a6606742aef616dfcfc9e0b9af7e687fdcda43c51 81a08d6ab72b86fb38756fec992191c1b3fd151c417125d4777f0bd0c57d2959 0db35f1e9e27945498a3f7dd60bc54d72bc8a573457c16796914029dc282aaea fdaa4b1439f4125add4b7399be6fc68e4d5a766cbe5ddd161180d4e1ee3c95d8 64e79fd0c65b8f459336e99827454d662768df3e6c1c3647b00b70b5f96a3944 b7a197be0f58a1e995a77221bd374a40159d81c7196c94e8af7c3392255ee6dd 0663e05998ff917a62d635ca45e952252342507d6b4d28833c7809c1b88400ea 50c652efc339a66355c8017651fd24d9a5cc51ecb55bbe64ea523b094332c832 52f7b426909808ae113c1e5601b0e081fa8e7777ab93b42207100f43abbb9ce4 ebbf51e584299a06fbea62b8ad3632ff0f281ebf9503ba6b8ae4f3b57f650388 df63eea9e1ef1e08f7a2c6e4f5cae2c4dc7b42726a6ea6b7592e9355a01fe517 12264a713ba83c057cb5f663045791d4c7598b246cd3b8466a1130249568e95d ee2c0b4abfabc8e362b78d9fdc025fc19cdf1887997d32fd1487cf2bf0ccc966 319e3e3cf4add90ab51f0c3e918a00e5726ee346ae410ec3ce90404580c47572 35b3ec4f5ddf23dd43224d90d8dc932ec7f0acfbbcdaf80f261482ea4a2a2644 129c27fb4b44ba8c78d23273122cbf1ca49ae879ddeb6991b87ce2ff25c655e6 b5ad950028de17f6628f9eec6842b79f69c84b6c55ae423714e622eb4e47f9fb c30a71808d70b89cc1a9b60f0ef21ad074a63d383444469479253d782ae1b6f9 f3b605f7da16473d3a81bdf5ecfd927a7d3a231c2f6c3e62d46c1c3ea08d03d5 581881b13160266b5696f2051e04922fb8164ea781b9aff7adfea381a0abe76c 7cdccc9089e4211a3994c4f98623fcdf34b05ebc8f52926d38e6dc5abff428ba 31bbb07bbcc908b3f864574d5a227e93ac6f2b05fb1c9e486fe2b74c429e15bb 80d4d0173a4c72bab400711e9b6d0cef04048dfc2d6cc394c337917351211788 f2e89d1f4aa9fa4edb1ad5693e8db23b01578f4742b0b77602e0c8b7c12456ef 1097c3a8f14bf1b07e91833622fd69d2b6b94ca0f2e72ab679bbd161539b9d22 c93b7b3d17b79abcc27648a6a8984b394b28f4b90e1b95798851599df33a73e8 4e5cd9b193f6c920c71f777cff74d7393682c8f044af2e15b54a8db84317be03 ee00c614f3a42b95de78528a7da8805c0f8ebde6389cc6b5c2f47527bed5c0ed fd9fd86766f7bbfaddd1af8df42db672b51040751238fe938fa7a9f18bcb5d4f c1f4e58e39ca857608ab15f95b726a43b731321d9b3a60d9e9f3c4f0dd7ce24f 527b692c56a177834045569e8fd8972aba38fbded66e53923d8259548fa5b8ca 6c66625930d3537e9e27747414050d1c2c701b8896eb837da99ef17c9284d671 7dcbcadc9d8bd6346a5455e3d51da1dfd811fb7f143bc604181d02bb171e991f 69d8b2a0e41f0ea7cc61e034b73515c482c3f0d817cca8db6b1cf2bfac964dcc 2881858478030c93c35b8cd152ebd51a56b8ccfcd278dec9ba2d7107377147c1 eae3c0021205852f348f677ce1fb8d27ea24474cb8113a0f8cb341c21b204968 bbbdfe70048f36b950c2ac4771602d8f32617fcb88c52e1ecf253126445b6a83 faf6746d8de857e97d0f9ba9cefd285f489e390ae673388a6be809a0a49a776f 3cf1ee8d83d71b8a25fff544bf763362f71159aa4aa17500ff62e444bce71635 3d0fc8215bd7bcc7869e1cb29cf6a5f13ebeb55bd14732b6f7b88469e1466417 648c53133b4f457688240bab7a1be2e97dbff9588bad8544a44eaaa222611385 7c1bc739f104acc946895d5b5f6f2eb360bb349dab4c514e559da5070ff87aae 844169c89b19781f81aa145ee32abe5f3291e5503c09f5ae8ebe34ac95b1d7c3 9ceefc096de2d43cd2d4ddead0e452111b161889f258b1aee90bf4c87ac28f36 dc288e35c38194c696d9fcae1843e44c2d68d7563e0f5aadfce3b7dcfabe1d0b a5fab87f4248045e5f686bba2c9ed45d706d1a245622412aed859d62f9a6395c d1de3191a389a06720bd8f0cb719b63291b7b60abc78847a85a855b6eb2ea49b 1a727cb7480914fefe0aa5207f04261391a0f2bbce163630850e258ca0daad3a 5e940d8e4f48f5d598f6cf87b06805b261c6a8a3b3cfb4dba635e3b8a054d7d6 23662187d6b241b52cb691876d2dc8f70180a4d67340aa186362444bc8a97fcc 90a236b7eeaa747c28d39bcea35cdef3e434ec5bdc381f2b51eb490567cc3ee5 f09543459204036d1f8762dbf4d6ec1017b303206e2d792bea6733c98004e40a a2bdce44f84bf62c74c6eddb7336a2549e0564b18c91145e2d73b376330db6e8 1c4db0217373409efc3941dbca7ae5f01bc0e2b6a9d53604cc9fbed758bea73f 217e6f29e74e4b80529809eb0ac0449d24eb8a8c01dcc54265175c166e3bcd6a d1e170fa84a39617cc95260fa27a95c7d60cede8edfae51d1822c9b71d56a0e3 f8406886d0aa7763861f6101b6983d231bbd281d35cbd7113c2ae4b0fb560e69 b17792c9347f8365a71c5ef0b5f03a9c626acad3726baec085eaed2b8ea91cc8 63a8bed9a7a3218e3588a68ff37ff36e76d6987064842b79be8c97e93301ef62 d014780c1831232524a9684ae26c6fa7c8a7bbe25dedf5a22a337b9a03cc1752 8099e5b31f59ae8acd5aa8d8f30be9dcefe93314532867457fa97d2c28a09f2a 15ce3841c98f1b7bf0404a50bfc1c0b5e50dc516b89ecf6303b0aa89b86230c9 52d23f69d972e7d3bae3e86a0ccae8340fddbc1b4ef2b182299d63961ca0778e 366f16e0c465a55c2926219e7cc063f7892d8342cd49d7ac9edbbde1cff9fed7 1b557de44c657e348f767289cc11c04a18cb043a301bfd54c844185d273b51df deb67d2112ceb57fe478f29c300eb32477c4872a3fad96dd6e820d1c1847d58d 2634eeb9aa9ced5c1c7ae2fd1a3fd7440fccb5232e5e63d1017759cfe40b1f99 9a9e71da47b151de8c2c7ad3df4d415c269f929de6325bfa10ce99cd80106831 0af1714a365044d639fab8b8ab50e2b6762d2a8a06cfbdcb483469312d2f505d eed0c9b34c192a1095dc53c0714924dc653edc9c5a2a55c1d612b3e3888903f1 db090ada5b3429dc7e1339d4f7fc4763d0cb8745a173758535d83f716da565af 450ae1e04837ec6f3c8e70e7f0b760266da18a2e282a5932f0f22d48f9d68bf3 a1e48bd9e02a49796fa1121d2b779cd177f3fef544328c2c6eb2c61c390aadf4 ad660ba23942b88200c2451a630aebd225673f0e0b3ca18b21bd616016544f3a dbfddb9a4ff3152196248be4d2dbdcf1ae035c0d58b34723aab00967e361b89a 3a62ff46384c9a12d98929e907b80a5e7793348a990fa32e73a8f25c50bed9bf 44f6b52a482f508b1eaffcd250adc7e5bfd918c7e654df7deb7f1a385720c2bb 658ebe919d5da0760b5c77835af27a287127a562330d950c84f8974969728aff 4f3a7e8022eb0a0df6990c0c598c1e625d691ef650f93640a3aaa94b871c77cb 6f540dbb398f6dc8a3ca31ee78408b63ba2b9860092a5035ac2664c54c3754c5 e20d62c57b49b75c362a9c40beac2efdee45b177e1b89a39a7a5b20b39573f9d ba203862926542d957cc40734b5033a44e463c4e729716df2c53bbc37b7693df f7dfedcc8b372367e244ac3d3f1ef7e5887216cba84b0a20e8d69715867a017f 70fb3e7f5473df9390f7adfa4fe5cd7275aa48dc79c37f1d25657ecb98974237 ead7f6eb73cad75841bbd7c7e60c1fd45d79b9f5d40d60a1898005994fe8d376 ae6fc4c90dfb4df8a823bf90c2e4101417138696067f6b65dea76ffa3dca4dfc f3d66096e7d3c286cead14016e106427808b7ee123fd3b0a4c7ef6e39c3b1448 01b28a0d1c1598884d57389bd94dd6c146dc1415f2d638007091b93186cf861a 474a668a26bd253722d888a1c95708825619c91d1148eea88d741b55a5329f37 4a84a9a10aed733c238aa0368bb07cf06385e012f5454756d701c84d324bd4da 2e778572341f3a183b6f589eb6e5c5707c3bc75329f3997658e955f9dffbd199 f06698418000114aeaf3b1ca905fc12b93cad6bebc3b1d03adbbfffefec637cc 40254fb57209b80519a54be23ff845a26e6713dba77b0a85c6542364a1266770 4aff00230a3b5c1ecb5c62904eff7d0f36c6cef41c4d98c882db770ae5e79d99 6a062ce4f1ed5588186fed2b67125ee431b1038885ca3831eb71bdb2e5105443 ddc4385bc56785ef5f81271393e240bc3bf4b197c02ee998b1b02634c0539180 d7aa68e9d7afd67c8db4e661344cfc1beb516ce1620c9da6f9727a630e77676b 7b3c107cf5d44321a3229011e77a5ad0f2ef827b02f642a7a8c19b421c0804fc ec846ff6f11426948033a1b18297ac13630a974f890395ff5859cdc7d98ad4a5 892491a6d8a0526f84a1ccf730969151e0da9cc97a37dd0a218c000837edf438 41a2cc9b5062dd6c631cd706ad3f6327b4bf78ca778553b3ff0e3cb572bf878d ce9de2bdebc8759ce6cb299c95731fd3afa0b9d89f87e119a34710ebb1c5a89a 6522c1b9b4517cc95a52304163eabffdee3e04b1ac6e7f759e1f088071403f78 3a6b592d4ba264f6989861830a424321969f14d364a809fcf9bbb9c114e3a578 db47ab0bce2776fbf8d1dfadd51303f3f8e47f7e59724c333eb404f8d7844f8d 1b0741fbf6d6ffaafc19705c58deb81c51d359d604cc3a32695a0df5a66044d8 3122e0021f9efbf6b4c62c498442c5c35edfc8367ea3b5953bc540e59ff1d276 b58155c887e796aabe3238755f137c86622a2368b4a3d48dde49e9c89437ee43 0c98ffa2ff04a765d458c1743396256d27a019dc4272a05251489500d47307d7 bb0df67cfda939cd4359d14dfbfa928c45d9f6bc21895df3fe3dbcbb4e7169a6 8b9fde3be751ac7b73f7bd6a5ea65e537ac8a3dde80da8a2987e2eede20bcfc2 f5ff6e09e6506c5f3a498552c54d9a6682ba1f7ebf36fa63c7372ccbb218fae9 faa137fc90f498b4628dfd246f2c0d7f8880d786de58e63497ec1836a4e242eb 4ceda2711178329080591b01af5bac0a8435ccedb893b33610c290b923e85407 b2926d6bd12a8d09e2732891c850182d19aaf6a02dcba7d217933cd8c8d74034 0cc112480465590144ed8defb403241db196d9a0c19403cffee70beb296dbc69 5f9db7476b1c1a5c7472144fd8635cf6bcd0ac0b4339c698d1c4c025c5bfb4ef f4100f28476d93ac32804729c3adac8ead46614a30f83cb74aa454b80940f3b1 0fda7d66e8dffc771547ed82df87d5b38ae27297054cde7804bffbba135f8a30 290ec4aba3c46fd3bd6379f8d7d9e27906ca5e64826ca0bd9766dbe9b7fa61d1 372edff866304531368b7cae9d0cf5991df6f8f724367507741c42cee01714c6 279bdc2183403fe342de99abefe21c4328f00afec5067ac9918fdacba30b0fc1 85c3beb790f91447227a212cf7713f339d82a21d52c958553f64467ee85e88a1 b102dfb6b49e43fff7324f814c522a891fc5e5e565f8c0da73540a96e818e9bb 622b5804998db67b685553ede9a497494c1b4bba3a27a34ccd36c6cc86bbd16b 9b4138b21dd8588f683079cbd70a4568d92616886fb645151304874c6ce9f47b 9fb39d9f04eae39019bb06302a71414fe96fab745fdd0d4b1f45659438bec7fa 42f729885f1f882c1ae3535d908ad22035bc40c1747fabff3ff5cc3196685024 135fff2fae9fa7ab956254ccb4eff568b5e699749f9fcdf6a0c7606a9e5a1c98 99b09b61351daa7d474b9ce00064aa7f8f027617008d6916d34b4a3d87f86725 0cde4803fc57027caf7341b408ae9b4b195a8b6b6b0d7a1c347b441bd0563b7f 222b96fa9d881e802c86674f1de3de6d15f0d11d106dcaafa8e49b4e7bcb4457 f228d9afa5716d76a6595e6c0028c32dd08edca9e314b3753da64226e32b5ff7 499f26fd7c0fab6a962860889f1f66c362467f0a80fa01a17ad61093aadea3ca e37fc2416243c9a371c6293ca25e33d9123773464d289cd9339c109325b8915b f8e2cc131a08f98acfa2017b015b60414743aa8317e671bf72f8199b7d669a32 a806e368a4d0efe301506186a6d00e8d742a4cd6598373c7b2d78411d1f00640 552d283c5b72fbf3459e383e4350fea9749bb03f217c1aa7b0319ae04d5b295c 800816e7f573752dd8b3c1a4ee27020b597362c6d638082ac2fe27dcc32cfe2c ab99ef478a87543a118e06672ddfa1a4c59145cc896cbb34eb65397432090c63 0c414224e400079fca0131cb4d3410eed6e172719036af3f6ce52e260e6f78cc 0145d2232c4965a96b32366b5696bb5174ce035d3f9058d3eaddb3966ab43197 66d7871a93bc4b8827f0d41f8ddba6e02bb735360bf871d306012c4d3056b003 ca705f532e8e990577c502762329a71da0f77c323538e148942ee6b835641a15 336409e00219b0b8d438d4218d07072cb230ae695991241d64200725fc9f88fe 5467f772fcd6644dfc9da79c8f280132ce01b68e2dd137eee6b65ad7e3467efa b4a58be9d127b58f20c96efd3b4629f7cc458782f3ebab69acb0f9540ce74fd1 270493be602f56642d86269416ec07057185c07e95c535ee3e20fd1f45200ed5 65cbcb3cd13305f4f855da0e1072d8e66e6b7c860f9b82753d82ac5c71cb10d9 b2619de7e51e24def6911c58141525ec37a6049353eff28b9877dbe629a32f4b 5af0f16cf5e977abd93a8dd2e4925fa217f93a00ca69854eb6753030423b5861 395f7b09af44bc3a82cf386288b40b9fddec53921b057e8539ab5382055644e1 184b67ba664a0e7eb52b5d8924614c37033523c1bfba0eab8dec3f3c29d9f140 31b478ff41dafc644a48b99dc179acc804d4447acb6a75501bcbd66be9ba458e dda327ee9e4e93d3ad5bb653dd93fa52f7c59f9c7104cafbddecaca3b7bd126c af4142596f0ba160b733aea02080b892342379ff19934c9cd29a36e800406b2a c53dff9702889cd88f01bfe80160210aae79ce1e1b2f127f56c16d8257d9efb9 12b9a6e17500249f9f23d931a913aa11a2826614e043566346814c4f3680b897 26b43fccd31c5b9c3f0d6bcd125dc4dc22ffd1ed2ad89c3c5a2a582cb7b0396b ebcd3db7e02fb12c42119138f160d6a8d2cbfb3ea8655c30ae05e59e668c3329 9ce787b6b84466d62b1e6bc9faa413d4fe1bbf0b2367e663143e7daf0e01e1cf 2028d046a294cd201e26dc167da132934d8b9de9c70e5d1f6367ba23ca949b20 bfa4c4e0155c8c15a021aa92e067bfa2461467421ac0b2244d4bec62b9b187df d56ed6061dca4468073205d06b288d2f26dba7a333f1bc92471c10b7ce661db9 3c60fccd08ae915f62cdbd0be11008085d0d861d1c7826a1a84480b1dab54978 4905c31e2bf7b5003315fd4400963974877a832c24535dba7a194ce7e4127854 14d63db08768682e2c271cc99fa99a53148981eca918e38c8d926c476143d060 76d59b5eabf80ad38bf486803fb87beefb96e3a78c0c791e66309777d1479934 168d66e35b2145f491cea971db9ff7c0301edbe98b4506735633088f6973a6b8 873d7e38a079ad19b42072c86c3dad1b4cd0ba5e5dfd7a7b8b4ea1aa920ff48d 50c6708077d7f5de58d1287267e3d76fd04b9b7ee2f04ea921d804c06a0175e5 28d051136ebd5d270d34e049e71fa5dddd842fa6dd3c13fb2aa89bbec8c86b40 eda5a894563677a5547ba073df571fff7264a77adec3ec9e102fc7a81fb75b35 dbe87fc499af9b6bfc5dc225d3498a556e8f725aed99634fc90c794539bbcca0 08ab3680a90eb38fec3f6ee1ac0c08ad2e0bcb97a0b12f553ff7a31b3043b5fa b87a9b58a81692f12f2addce1a47e6952f35bd4af1d93152af4e757ab0e586e8 5e68f409cc7999b7869f6415204fc6331b30987eb794c00824817f635e40bffb bf88fbe99dba7dd2f727c7555347e53ad187c104972281ba0dc76af0082c5413 3e7480e3325fb6f07bed5535b6c31f2c80f4c9cb3a923af9d25f9e03537b2a1f a35be135554dd5fa26a70ed4ce551624653c000f083cf57c0bb6735ba6dc04c3 84189b647d732d3329da28225c4a8016491df691632cae8aa60013fb2712b85f c700f8dbdfc1d46a9bff5fc96ce5aa29be9d3f0eac90ba58061583290376b625 9348a475aeffe799dc2343ecb0f164b44d55f412222c26ec40e85ab22e74e8e9 d4e1bc8b063e2163606ac527c65b911713a022aea3d3608aba31b7377ea434ce 0b60d1e7530ddad241c97c023e069ea4d323b3a37000c7afcb642f81600bed96 4b1090d1f40e8799108ac258ff9de14945e44060e7398994a84d164efe52bace 44ea6e0f59c36d405987f8640185a7406327f5f9326c440871e8149893fe4cb7 2027172a990806d10b155c53478fbd46fe30f9896880854e8221e4ca38fc8b98 242b8f37fc03b5a92381a835ee8055cd76b31d49e5dcb18a50078b1deb414fec 088047f490e873cc86e978c5d2ab9fc2e0dcbd90bad02fc38377941b1497aae8 564af1721c19804dcb34d6e20bbefa9464d44045995a36acd65bbbe0e68c1e4e 8caf9126e36a6deac21f641ca1c9eb0168f73ead5744864789cbd7461170cc10 b05ec36e5f811a880208a98350328806af216d11a4ff4804a18fb39464c83d8c e111fc76953354350922bb5d94a9d85d6d59ef44b5b7c9042481b21abe094de7 8c5a22078e6fd752791d29517c0af6faec5b93567a35e945494b46c87ba21484 f41ded9b220ec8526b454bf9c236d6933e0e9f1695a01d5ee870bd96d827bde0 d5c1d273bb679ffa17a39ebc01f68707682609fbc6dcaaa30801051292344c69 94ed60d237ee646d3b5a158d990b16106330428f3bcf1f3402c01d0abad70025 a5d15217333a71e4a99a8df75bf7a5c7c5145ecb4c62fea854e4c593ce9b0a77 138942ad72e21d90e96e35be8b812290fba43e53c7ce4bc7723f20a80ebc0366 8ac33ff1adbfc11826cbd7e1c684c5edac032be0159888cff2e669e50eb40807 7fb4052e64b133b8519dae5efe90a8d9bb59245761752d06208a090457d7973b e6b5b9b36968f1e1e01352b84d21d2b139987f84c431b7bb04b4b3cec76e1026 b75b056c050384a00fb9cc4debdb5c0499f76a809375b91e3b5fc908eb7398ec 9a077c676118fe48097b297146a6e8f62a4332a2005a2c304262dbd7f7ee9e09 a9c6fadb816c0180bc828e9275ce557ff221540b8459047cdb527049b254fe00 944dd66626b7f3e02b98438937b6d4f2fbffffc6f66746fcd7edbd4cdca2a71b c1a6adbb8c90d2f57adf447012d8f69e21b26b0b3423e562a185adcbb0a411df 1ea32cfdf463390e81c2a6f5ed609dcb665bea4ca29e7087b5a5e5d6525dfe51 f66a486ef82f882c67f35477dc4a163ec6445a13afd58f8317e3e6e7a49bd7fc 88bece9e2c4388e7382412e0dc249f36048e388dbb4648c76ab29a0c3453e8a7 ea6ff0d1044fe7bc4f293e7d18129de7d92b52ff8ab5bccb7b572facb887d4f1 449ce85acabc34574af6e9ebb53f88974503b72169fa9ca69e48084a50795cfe 41372a646532801d84f54e0a8feaf97dd65700823f49ac77f2c27f7efc6ab926 b27b9d4fa63e99f6b21cddca66c9830d6d9d18a52e1c3136be 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI9 %!PS-AdobeFont-1.1: CMMI9 1.100 %%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /beta put dup 21 /lambda put dup 22 /mu put dup 58 /period put dup 59 /comma put dup 60 /less put dup 61 /slash put dup 62 /greater put dup 76 /L put dup 77 /M put dup 80 /P put dup 89 /Y put dup 96 /lscript put dup 100 /d put dup 105 /i put dup 110 /n put dup 114 /r put dup 120 /x put dup 121 /y put readonly def /FontBBox{-29 -250 1075 750}readonly def /UniqueXX 5087384 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 3c6e705479464a4b33ae3d31bfe98efe259f07f7950237bbaee4f7b64ffea83a 757fa717d50c3298392891bfd60e34a056b0d6021da3fd9b8b01bf78b0b23dc4 ea3b0605150d20b27ff9ea5f2524661019d982a2e47cd7c21ee5ca9ed9227821 f8d07119397de26838c11d7b35bcedc43e011626e300f8249ed846d7b5ccbd89 02550cda17ddf113df658fb13f8162681013766863784efac128e01ef997e1a4 30312afac8f3d948edecd7d5090ab5c864b91d7f6e80256f0e1fc99f1102b74c 61cc456e2e1bedf0e627d5f70f738f963a13666405c51ebf23ca077e97570a2f 1118536b92e585cf1dbd5fbf36a0a5d197538c05304e93a15f3c931168d91d42 483ef428b1a3f1b7e548fd1d23b80f5523c8b8bf450b02804fb689f915c86693 f7dfb1c43f681627c7f027021aa3a8179148f1819cd94b8890a9ac63dc1e8a68 f254b64f6f173c3d02e3ebc037da05074017c8b113e94f4e2d26b467ef9da07e afd7ea7c86e025af52c5ceeb835951e67e02a38daf1e9e698bd21996c1071e84 ff7fbe77f6ddf9d06fa92b16ecebcbe0370b5cd9d450d0f2906a105cadf93ed0 0abc7fcf2c996e7c15e452006e35390d99b9cfc59925f1444c20d9c3e1fc2910 32cf9fa9d580eac1bc956334da391b870a757c3bee6aa3e005b20988d8587876 3ced20c6edf2ac2b22890e37ff7aedeb0986d85ae05bc84339bf2116df48c5d1 cc888bb33d409b06dd70ffd0618b2080442aac439aeb39c20a87ad74ef10629c f1604db8611e8e4224c5b21ab0c7ebddc77fe9a283b3a8c6a2a9508f6836e3fc 3eae1366b4da4f44cb7a77fd81d278c17775d56cb28b70f18d894bfd1ec1827f fb16a02db2462aeccb262c8029a4ad546333e5ab700a6a8c1ded0af7b9fecf19 8a854176d64433a2018a98f4a041f4337215b06eac168d452d9dd606204784ee 79455a63e7a977b3cf93077cec969c037a4f5cb9d11808b7ce5d27c3fd743d9c e3dba71bd9cd2438f640ceda3ab116b795d72e618a53bb4287b3d45cdb07bad3 b74c85b8d75342234d205388a1c4feb0c51fbe691b9f3857d3a625da3440b630 53c04f6c924bbed305a125df0ef749364ea450f7322ed1e413bc17f8210a27f4 3330e5d3cd91fbfa49cd63d25eb89c163569c4e51a5cb05adef1168c927af412 a61e9bd1bb2d0e4387edb734d3a1f88ed9dfd3cf86de3e2773d16a60a3b049ef 7e878a54ce38eb8e3fb12e0479b3e8579aad6d74b8771b9ef9acb9289a88a875 e6698d7e8b945899699033613d0ab7a024a5b345d65c76652137c8c857e19e04 a0424d8fca0792a7b7a8355916197174846d53a8b9e56be2663133432c59ad4e bc9f594b0853473b0ff7d07bd826f63aaed22dcb0c0d96e900ffbf2a5c9d37f9 05be1c5938d9c6021df768deee58b1dcb40e37e25453b19c5b57b09ec391d78d 8a82b77dda3edac3b63c7317f4f00711fe0bb7665e170e39229a1330a3c0c8e1 ac9509660ac2e8b35ee0314844f04b5c59ffc5bcd4bc6ec2ad2b26ce85c3a912 73395522ab2e1715804e3635af2c70a3bf3abeb061cea7b773dbb6c02a58f79c 69e8e6597d8ae00998a82e336d842613e6833067e78edae8c927bc09778af9da 3f7bba4868eb324283b5297a1739c05cdedeb4f39c3ec5e5bdba1679f07942c8 8872a719d854ce5dec0d230677a4594632a8ec0439974944e3b1181fd60c8732 7740e4232866f67740ecce5ba6ed3110db0d95d15ba12a330a0fd3d8c81a260a f32d3252f07de92b18f6b6860e8f35032a97b2af1f29ac9c31078a7fb5c264c4 a24bf18f7a26abcb5e7466c13f285848aa45148f2a84e350d34afb2bbce0e1c3 a6fad97a6c8e5803769d9af116b96e1bd4ef0ed6f17ef1a733e953f3c5272de4 8cc91b50fe127d8bbad95b5ec37817ac13f35d2e7527d3247a70dd7fd73ff5bf 6a3bffb239901496a331cbfb5c5ec559385fb1cd82398a5f06f73a9c423c1d4b 7fa84274f2ebd3b6a083a725206854b9b470642e5e7f00cef327637852a001ae fb002c5f1546e5b0d7264ce946943768d182c9eee8471118bf360d4744b67cf9 3b0a65b00bb712a1a0974688eeca52339f83749c7355f0b7127f4c4eaa218416 2d9b319f973f862e160a923c9a241107c21b79848e38059095fabc811a35cc57 8fbdb0f82fd643a7d7a1e77afa0b09db53d68d80c6ffb1f56ba4cd911bad22f6 99dfc1d0a6b75faab5e43689835e742ade75c1effee0b7377ac3dd5dbd7cfac6 05c96a17acaa46cb9a017c2bde368565972667b1e0f84af9bd9fd4dbc8fc6b5d 396c8400cb1eecd7f635551e5140373a1230d6a9b65e2abaf37eb2205e029df5 80906ae2daf74be852336a8cb57c3dd2f066599f2c442e5d8efbe2e60a2e424c 1da433d8988b674a9f41ff985cac089e71c1d6c4389a9fde918a5d10b7e51cb5 baaf3d2b6cb2a6db94c92d79f61606a9895c2ec5d0a1d3f36357b774ed9d3a4d 472dd48aac6aa50cf395481d2d59db311c78294749017c2b77ed21435e690eb9 3ef7647cd59acc3ceb7c2dc05814a8a1dca812d5031c79a9562378a0829addb0 461871a288d4bad7d358e75b8c2c9a3c4cc5bf35932c22d27c15cd03c3c1bcfd 53cee141ce2b28778f2d86480bda36d7256043380ec396cc283090f1a2aa1f6f 6976d2d02d21b1949db69e9995f76e59fef1a43a7a2d1465d6082457ac8fc2d3 233a7ba73ca42e829c9f10ad7cf7c60b8915e0777eca67da89ad1c107b77d61c 8acb7d0527fb02de98758b8f946600d3b0d3fcb40b699ae8363852026e176bd0 cd4844c3f07d1e1b8b27629873701785fda1d99253cbd3c78852ed4f4f941b17 acd247f95379dbc82b6134aaa8b636b04412d70f3a5d2108d4211c4113bc5870 19e000c097b1c3db20b45cf373c0b79276e849f04b1a9fed4559319b3cf70f34 9e4ac3081053f1829250116b372707e6377ee3fdd7621b8454b32064e43d6175 f1f1fe2c211225caa384336a37b74f193bdce11d404cf3da998fdbfbf419da45 b3a24a6e64010fc19a7a3b237b1b2f6f70803f142d740b41f9039a7d5c4ba954 ff858f0c7df3e930b0335fc12654774fba7ef3ba0f94c7d58b6eddd6dbc959c8 f17c2d49d70c367c83ef3251ca4d505432903249ef7da32338e0c18866c71b7e b5b9fc0fc1d1774b44cf0873792b5ef91bfc2a2f227ecb2657aeee9d7bb87174 019d10dd2ee31fb37765e1e385a78a3f77618724878b91145a0e49d86cb3ce25 bae7e38813d8c13afdfbab85603eb12d20f84e4e81cab66e76a9ec0faf49a85f f96f60313edf12663e703381ce0126c244bd3c9c8e82ef5f30639ef8c2c4691f 19372badcd68f113f0a3d6c4e7cfd153d041bc099180a9f78a57ce2334edd5a6 78b1d3046d39b09137520a72c50392a45861840b1ca3d78b1f5864ba3908e354 8258c35adfed4b316b84acfd8f55fae7a2c52b2ab3978264b809438bcaaadc3e 266eb839a5628168710322ffde5bbc432ba37fe9998c37d3ecaa6cf2ec14ef67 d6cef9e5cc54d6cea26b4a0903e634510359a0c7478020a1fa12d5266e9d9c1e 96e4b7b17df9d408e1dd05bd943da911c0a73c114f632b070eb44adfc54b2399 c3564b0d6e7fb11f977a3255dd5d591597a24f2529e38e078ef9f8b0044374ee 836423ee79e5751ba0ce37ff9977c9ff10910c57d37747f716eeac5724cdfb06 e4a4fa994d14300580a9d50acdc7e5ffdbb429b881efd47be91a950c1c55a438 a465b3e41debacfb2451ab6aae3c82a7d43aa45fe9c107edadbf5a7f0a32ef51 f66fa83ff55b25280e746627860eb014b1ad8043edf3a54511f2d453bf64a4a4 b5285203b6511c1cc5a2a1a869b3a90ab7e9a809a91e1eff215ae94a02babb49 c42d2067279e8259aaff67d18b6b21d3934eaca9aa9658a2de01d31fbf0a2d2b add08793cf23cb609f3a1cb601c266ac486d686ee271650d8c444e8eff49a40c d8ac3e420d7d4079a8469f30a654dca81f6fa96ca4c2c8eec4ee7e3ea821189a fb3208d3467d4392b78fa5df76e0ed4f8dd219b083ddc643a323f10dfecdee99 d36480636102cab48cd21ba875b757dad82dd47f178088e1d6c18dec242cd211 a99150d619162af4919606328674c1d43b02f7c978a38cf9d6d102a52641a8ec 8cf1febacbf0f0ec2eb05317482ca2172bbba0239f33fecabd6470f29453f98e 7aa26b9583c620cc02ef62d863797eda0fe3421d9b0ab4716e95378270da963e b1afaf78792fb19c9ecd5c8f1f9ca43c88fab51e21a457a31284b187d876638c 32b8ea827bbf559d246b81158a1f3675ad4dafa31a4b2a9f63e6f809177e34de 1b348a64a094cc6ab491dc460b0aa77844929ed66cafa38b4e0f8631c6995c50 0f653fb6180b6c640950a30e0d20a0890af8123a0b0a6b4d7070dc43dbabf288 89df7be075355d9fc2863ec2d95c9d04b3177bc759da94097770c197f4170b81 32f3299600ea0fb5303fb8f0515eaca7da3c8272ea384630f9b34f47875aeb07 525d07751c6711befe46a45f14c9cc4fe60b32c69a59ffa4e2476987561ad860 1ca3af360ae195a6d033a68a933b0576e0703014f52b58f5214b8b8ec94dfddb 5172ea18c5bc3c71fdd9d7a033ee322934f15327106b9b965a148c1c3a4a3d13 d4db24ea132dc427922cdae66ec2376dde278cd51f132a86c2759931998e049d 128c687635b659d68e46890d591123596a33b2024ffc42e05e357440624ed3f3 2181b626e1b392c7bd9266daef58a4a9e7c2218672888ab5d0fb538fd422d3ff 9ced65708788b44b05d8a5b2b6430d5ac5fd371689ac5373056ca7ac5467f70f fc727ccaa6a4f4fc95d8f3e3e4cd04807c6fc2c18f046574ab2c1aa32b62a553 61c5e59b13fdc0e7839a7520ebda93936e57416e4a4cde34b3e5894914c76a7b 69dcfcb1c5fec4946e55ed7eed144c856447829465698a38de345c41870dd2bd 53faa0b92d5212b77ee81be9c7311f6abbfe89ff2be913a33c27d729a41d2a81 45933bdef3cd696d028526fa6113ef3edbb290f7f380f3291a5b4ed0ab49d692 8ede8c5ea74b844727bc23b7010180f181bb5fe5005be5c24b07c439b923be63 d7e1f63ca1b507399a524f6896d5816b0ff4b2bd88b00ef51657fda0eb8adebe 5fd184c685d680700e21384935fda0372e95cb66a8f8a36720703e5330c43a0d f347ece2ca1995949b00e7753db01f89c7fd4c8f0c997d696709725344949406 dfec7563eeacdb27ed6d7c3590d07f04eb3207fa08569e56d5fb5b4305ab3206 97a23366ade720fc2fcd1e79e2afdf36979a6fc9ead243789249e290e6c5d3d1 3c638ce63a6c4189b6a20b3889762ec53a4b503e3b227892439dfe147b13d55b d066617af9c6378e2a0d330de0866fe1ca525a1ed04e571877483f6d0d3f031f 9e89732c2a5a7af1fbe28ec2d9a64ca9b65d0b4b48f45158e583f7a71c96c0e4 5c87642b8b76f55df6804ce7fc254cd44a6da4150286173c9b5eb81458b08600 08523e54ce871ac69a8efe3bcd152afb032f7f81e00b1b6d9fe5c815f561e6cd 43d3279afe997fe393dd2b2edb63153b4cd344ed0d1b815c743a102f892a54ad 8605ed479cdd8880314315d2bd1edfea01e6f98453356b89791c6f6936d755c1 818795983421ee18b393002310291f2b0807d638b1e2c003560e25e74632b6db e137af85efc8469d10b026c538d013e2e8afde57c3ab1cdeb9892ab02f6d49e7 aed7bd4350046b725e9f501242b970d7b344b5b3ae15dc22e3ce86351222c156 cf738d32dd6c73179c572fdcedeb2ea6543996e9ff336d2edbbb0c8336d5924f d69606368506b75dce161eaa59f1f844daf0e9b030617cf259cfb883c5dad14f 8503d0d97ea9a8802a79dd5e0a4cc1fb22c22d4bca5e4fedccff3c9657d0d303 084af3f807190126c4ab23fed9403da16eb063eac437b6d32418ecadecc53848 2f152e9c888c652ad924585e12e6733feb52aef1a7653a6ab3f75567c11d8239 04f9aa655f3a8c3c3ea5e08a452f301957e33bb57c7f04422ba6bdfe3f9229ab 4a9f02bdedbdef526911065e08362ba5cee41e21fa968f304f6cec748813c128 7d14aeb864cc1ae183cbee256476d9179a3fe51485eaf3580679063bf98ab4fe 2a2ae44f97e8b9f0c56dbae825e51b01d0969a1b5cf8e18bec7f53b40f4db633 6f6a81f5a8a18356505630c487ef4dbbf1481ba946ba3a2d9c7fa453d0e7032d 7a3def1d643b0f9c2b90b97f4993ba90462daf9c7c518db217ceb8eb54e358fc 8b6a49a46ceea162c47ff9f65c534dac56d47351913de557c773 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY9 %!PS-AdobeFont-1.1: CMSY9 1.0 %%CreationDate: 1991 Aug 15 07:22:27 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /minus put dup 2 /multiply put dup 15 /bullet put dup 25 /approxequal put dup 41 /arrowdblright put dup 50 /element put dup 68 /D put dup 102 /braceleft put dup 103 /braceright put dup 104 /angbracketleft put dup 105 /angbracketright put dup 106 /bar put dup 107 /bardbl put readonly def /FontBBox{-30 -958 1146 777}readonly def /UniqueXX 5000819 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 3750d597b842d8d96c423ba1273ddc63eb43f34fa90ea73a234af35fd9b24eb7 4f19626e9124df7acb92629cc87b2cf81c4a89b27447806db34393ddf0402958 e2daee0b4bf315f9aa0a2650d2e11ee289ffaec940d0af160fe7f29411c1c458 69d1ac3bcfe2ae4da72422549095f1fc9fec606289316f106e719a4ae2fd45ee 868fddf07a80e9a626bb43cdfdaa9dcd208b88fd99af20b27f9d6b5cda6a3fa8 8d5acfce8b5eebb38854378cecc3bfdac526514f1be9fb28ae628918ba942a3e 05b78c3aff808cf416a5ed01be280231b75a7aee0c66b0549713bef6b3cbc188 e625ba827a5d59b41159eec83e1680b050393b67fb393488d8b93650f8eeab03 d73f4db9aae73a52489b304d21b0ed0e25f1aa93367b8ed5d55607b4b3ee1f56 8dd87b7f4a49dace645ce6e2276b2c76a30c931bdb016cc41a06f78c1abbe86b ee813379d6d5f3f6864a731976071abf47295c22f68e2b3116c3e39eb9be1cfc 2b99697a52cfdbdb2b742f9480c2ade68d342d10aa08e60e938739b4baeeda0a d6778036348cea23eb5b6655571143b245ee768b58c7d26eae567f3dda6a2376 f46f56bd824aaef729e48762cfa46c87a071797aead6061466d3b3eefeeb01e4 8bc6c9374d68fae96fa2162a2df27b593bc470e7d464a1632c4f982076f5e766 051a85cf4d90aff2b515bf26d15474042a3c5073ab86c5d0712eb1ae6f6bac5e 8c5578e1aff426b99b4f1c0c7597d39dbc22f86af4d3096b45d30aced46e5318 9cb42988442503339453e08e066363c6f1655fd1a293a31c4b8a8d09c9f5dd45 54f994841b8d7409e31d30e806af99ed75f72f8c6227bd664d14a739dfd6965a ad01398c27b6e39f34f0348bc13577a24d9e967e493233a441e1e19687e5129a 17264c7f380d6f56f83767c7f7c01a2823bf82bc27497efe490288dc3e27d9ed 1461803b91a031b9f19dbe25c988b9ae22e2538f7c01974673c821c5d518f4aa 011a784b4c8407a91968c536da6ad200ef7ad3f16798a62f88552a60b6828113 ff1c74f985077fdd0fb9066a67b0988928d6a9f0741bdc29eb95bc84d211231d abe7bf672d36fbe211c018e825120aa533cc285c266fc3a322682f5d1a968a1e 1a0c0a2a66de8e78d5f5f9fad7efc8ce50f37f770e2c7ebfadba1060f6e5547d 2c10960df529079f662422c44f5b16b5b12f508ac96f86e51361b544f67d6b8a b787d384c3eff7aa4aebd8ced27f8facb7009aab381af3d1d545b75ec4d9f04c 860fa25f2f76519a96eeab2012e501e83badba6ed4f6e7981b057cf3e1689487 a931a6a33c9a6db82ceb19b0a2b4a3965f51434a58f8edfb3b130fb77d9be244 616b855f57d735982f084676f11aaca170705233ab5467c519418bd2cc7da0e9 ee19137ed41e6b538e96059b84d744c46f2fa7c96e105a22b0498d22c0805eb5 297a2f2f32e5a5a52fb8e2762123bab3d694d020a0316e24fe629c10be6d6407 4b6d21d9d1bbf222077e98740185e76d060e6fb92211ea16939e1685c7bdcc1d 565befdb325e7982f01908fe5fe021ee7fdb6293017b980d3b2939784009aab3 ec41e1bb4ba19555421074983d786ac7ed5e025d8b94bf20cc8a425d584b1989 7dfa1dc9fa04d4ec1e718c44bd0431de14c20c23b4d4ee2c80220ffae75e0ee8 d876fa39db5d99642b39dfcadc82f0e8971e939db886988f79f4ae552214f3a8 fe05b6549dcba5236a0335b76c2cd32f1635595af592f4e7ae5b0e8e75adaad9 24a5db000ce7450ea2f7a44216772e617ee35e71c3750e67abaf9483061d75b4 c579c691762f24811bcec4779ef0c3d8aeb71297240c2a977fc80718d653ca0b d66541f279d84a8c3fb925908d12994a84ee8800595e7f66cd9cc8a4af9fe75a c3b0731cc79fbf85bd5ca9ac0b821fcc434d075fe58b7028d9c47c3af9282252 5bb88644febb04717572c6518f406438fd159222112ad3936ab6835945e9636f 0e69e45ddd35b7408429e45bb5d77b2682ea1748e801a2aa868c3261bf80ce60 fd4342a3912fbc04e4c3abd42cddad866e37a6bd5c0bc08c3937f3efd2b734d8 9574f4e1be32a70d15e1a2998232733d4a20c314b0a6a4eec2364f2c4b3e0f1d ceedc139c6535429df75aaecb43106f07d1656434267d3e4551aa6a490346ab4 e7f0271a41197183fba01cbd3a390e0ad1246c4fd622c556653f6cd66678c716 b8a9cc0943d4bf197458dc57cf34c17d6f06323a6590b7e29282624ced67f755 4c9353264784080902bfa4ff89c8f5881369390ea8e7503116fae101bb1b84bd 7fac024035390ba4c5afabc154c337baf985995d098c98d71da6d48cf14acc33 43fccbc4ba24c809f2077dbeb0ac379b226c5b1e79bc78e7908863f8d5946a60 8ecfe9b86100387c81ab7320c9255b05de8fd7639bedf8a177138994d7ec0257 652e79cab1215059128ceecdaaeb0622ef18e522f74f9224112d9a5e0f380848 61467aa1bff196b7c8d9b8eaca602cc6b5d5785810f528566d38f25b1726feaa bb5734fb139fc949744e10aab5217b96cfcce8a8e46cddb402c658449ff952d9 0ea1e3a3c36fac317ad0eed4bd52688ca9ecdef16740fb0aec3c5ce44ef16902 a4cd6fa7c42370b129d4057ea271eac5fec82f6e2cd4f8a2b04eb6972a1725dd 1dc78d8aadbf8b076164a852ef2480ba050a22d07b13aea395ddba76bf0f52f6 c998e7a68dab918c929ba6988f83eefbd6b69ac63ea0471e1e62167bbcdd5547 e357328ca73b414ffa4e9db75a64e6e16a32bb788e5fabe02e416dbed000c562 699ec80c3b7e2823d92d6be6d00ef218f85181375d159adc400b6b051dd9c930 831d7290a6544758905308615cdcf513bc00c36ba34e21c797ffa99253554750 41a1f58871f7f23da7bc898f8d803e8221b4f0bfee2af68bb62069ee7b5905bd ec8b1d472ad5d5260079d6e82ed1187bd09125a5ba029b067cd0a3f31f18556c a144240a47c0a48237c6255147c065f194ebd77e8585c0ac60d9a21b22f12077 fe7719eb1669cdcb632d7af796bcb515f73a45f3c2cf6aa5e16312837067b86c 5d02cfc0ee8efc56e06b065ca315a478f3a4b1b1f1c42165534d6c15c540a58a 1c6926dccc09cbc48d9ee443888bca752471543bed25 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI9 %!PS-AdobeFont-1.1: CMTI9 1.0 %%CreationDate: 1991 Aug 18 21:08:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 14 /ffi put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 73 /I put dup 74 /J put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-35 -250 1148 750}readonly def /UniqueXX 5000827 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d cc883aff8d6350d6e8af1a9c1d2d7fcddc4c554c7e350f2420586f43e2124611 487cdb176d453854b51cb8f9100bf241899bbef87d57f1135e589813995c4d86 ce91db2b3757948f365186c2a4f32d845f659a8e95028f9c0168851997135c67 ce7654f2de4f22f51311aa78f440e5fc2c58f6df901fd071b2d53b2697bfcebc 43fe4508828b4756ebbe1f3e8512514162b3bb44493a65f11ab56deaf152fd01 bc8b642e6021af01998edc76b6a1929fbb9fa4fd1a430bfd4464b53f75075f66 c726fc037fc23cf09a178ffc60908f77d8ea9dea79c1e21fcb5a6a994e5a8e5c c6d6291891df7695db58a2dfcf3bc9a17888c29559ce8f37dd35c0ae35def3e8 daa6d8d574f457b0385efd1611c048b9ce76393fbfa006fd23d742cfe7016035 5fe95302b129a824c7794a9de47e463a7fdc42fd72b9da3fabc3e65d90258ac9 c1ecbd3654b103a488715f9e0e649b57146b786aa399c6ff39f362816306a1e0 ac83a4c83410030d740e15165683e843f69579ec1824c36935ed4705962f494c 401400303b590614e5daa8dc53fdda083fc854e535fcd575b38aa43d3d5c4a38 d56bafa926fb9e7fd69be1af2b502849500693dadd5f00b3185a8b18a0b64f28 9f33f5f1eceb14d6945a22d0def259076cb9b11d899318852053d98c36ce0a0b e347edaf1e4e777c303b4a051e3da7ae5140ce9dfa018a8669b0b551696e194d d54ca062ea1ff406ca877790dfd1dc18ac62288cfff849d4a142cb1c1ac5faa0 ae05f039e3cdec6ede558fa3faebb0d3eeb981e561fde8899d5d4effd8610a21 b1ee990d09836d75ca7f8adf56ce3802bb45fa9a0e9449fb97ed1933f3686923 7d6f9b8ba6e7ddd9b21bc2e53af56e28c2dc8ae41f3869a71f23667ab4871f21 2c30e98bba6b5d1f9a1bc5268f12c9c94f51956e6ea840096f7e0a73244d9d06 070904f3efd466266c3176e31e99447bcd5ed3444e49fb24773f8697a4eb6457 ba339eb9a4fb24cc83a5a1a1c798550780bf38868a0364bebb60109f80b82003 ba5e6c54c1f65a258bd1262221d969711a91a7d0f9c936da803a467b143cb22c 43464f779809ff0aab8c21b3e4f18c5091b2e1b7a6928d90703c1a93ebeeab98 e6fbcd6c39c9c93ea672c97837bac0a26b2dd047da0a38419fa9ddbafad3b233 7ac6f7c85cfd28c728e19b6cd5fe3da4af9d9e5d58609c276f37b2aba0df78cc 2928ffee9b609e6d8181e1ca13784508d487ca288121dd3b9a1dc85787a527ea 5fc7966352fc2a2d8474c727b3f01ff67b19088a8d5689ec2ef3a686015959c8 14d14cd9356b93acb4c97df193395b2cf5a3e360ea01392be0d869950ecf2fe8 bed0eb7d236ed94a2f54369ce34057e866d798b8e0a342307aa0fe6fbe570ef4 a7aca99b925216ba7ab364299169e18ac1bfd2efda220626f938ee6fccfaebae 38839682daa135dad3973db2e501e093bb7a23ce37a2b1ecd6cc997e776620b1 61e463d658657737c3fa4dccd743b55170f2fced8afa738cbcd5cd6bcfa9ee4e 907d5f8a1dd770ce1be4be520227b0d8cb4a56d519a4e287a14dfe1e59ffbc5d 2d26b1cf4eac00f828937ea56ca3122bf80e4f43e164a5cd1c2922e3a2dc10e1 facd59caf6b1b6a271efa7d5dcdb93054fd505ee09c11a0443c9d508b1c5028b b551512a06392258014d6922deafad5f7198c42c2cdc8c124007d6c0579796a6 ba1129902dd9d503f0ee65454a94addd3cadeb64e8b3f95994c916d59ff19328 94fb89373219fa10d34c40ed2c4f4277a285b68c38ef0019e39f0aa49a0a34c6 c9fb27f9b957606ac573ccc10a8c5d5627e8b440e3b9b69be03f0d70a1aa8999 e0c35881e624dc0499b85df14706b2f3bee1c018a28dd6cee137ea9e5269a65d 51a736f79597143b712d38731d967144451bd8c33581386b33ac22af524cdca3 7531f926cf54da1511b3ac05b8ef9658a5c1c7db85fc5d8fc8ac3b7372d92686 e0865a526563f7e84c8bf4cb5e50f62b1ba2422ca3c796f59d787136882fdc6d af5fc9409fb6e3aaf7bd1e245790ba4be7615e746f85ad45f6c5850963c1416b fe8ec2396d017fe66aa499b698279f93ac9467a2b5e32d5b2ae42403dffa803f 17956d320f8d9a59f2f493d37f3d9b78cc6c500ff0c1210701beba987d635d19 92aca9e979aa0b01414880661513a08c664a729bce187f0fd9bd1b8f50b0d4ea ea010e1a54674bd439642ce8bfee203ba2001289c2b051948eb2b1bbbf0673e0 a901ac2c1297082bfff27aef9d77689e6015c79155f30e98cb49357035a4ded0 e1e0144cd38c8052d40f8e25cf8c6d138904bf79cdcf2def032872603c3e8b9b c2e717e18f9986558ff9324b751274e4d00a447a4523f5db72c3b3bdbda4b7a8 c972925ff0faaffbd661889f7e5217c9e2e9f0f0a4427fd609af6010d7c60009 8d824259deb20677e8d6459b8c9e1ec10688b083e55a0b3677d8a7f0c03fc7cd 7862a9c0f62ecd7c55c33adc435983d4158b231cbf04aa8d5ff870b50fe87189 3d912393bfac5ee75d09cb8825b0b51bda2d5573221a6e6b6194831b1f6d3e47 743d055d308ad073f725c15f993d371c103642d17afd32f74de2ca5bdaedbdb0 121bbe2eac0a6caac5336fafa52e3bcf41d0d1996480127f47abba7436e8ffd6 bc62f727586428569373542d065a38d9d978f3034c0dd90afeb921d8fa524ffc 03d56b794b1f07e66a904f2cc7071f7e3ff3039981d8085231e7678430551dd9 415e1244535a9e904963e1bca362d4389592fbb38a4b2318674267290086104b bf04502f2882931b46d71b953bcc10c32140ba528e4bf11aa32a3a50b44714e6 c9e3ac990535a7c85af5f7ddaf024a24c7f569e6e01ca27c26ba9ef400598fbe a933803549bace8f3a7b9bbf25b6e5a07b6a6e96e8a9d458ada7abcdad359577 39358c03c5e2dd7cdce5f09e8bf8d3c56276e2358c73b6b333f33c5f9d7e0764 8ac08a2923f91b3d0d01cc6b2eeee255033c5113e53ae8a6026f9775b215d5d6 b5fa039b02a8846cacc93edbee14fa70a3a3f5076382c24d088202f28064f110 c220ad6e1d87480254c5505fef0571e1c114dcf296794342aa963d3e8c7c9518 399a9c05275c8160ae1b1c36a9b5e77ad157f2bd4dbeb005d38ff16048169ba6 6c17dd4d28c10cacd4b62d0bcedbd0fa0e8324f662f8717b6647e6354c19e57b 691be44da2db13ffd69e28362d78e746becfb971ce31095c71cc75c8c0cd19c0 8aad3d584f7ca4294e1d722bd1df20503f52625e4eab9705516c846cd263921d f5b1e3b31c93a3ab161db1d495a0c5d98ab8cdbe2c9e2303e124f55f7aeb2c56 47e05a41bffc98d20e591a853d7fac57e1f5d2b99db612a3a45a04284cf2e9f1 f2f2d3f5852b91f0840240eaf9cbc99000405e83cf81afaada9aba7587316628 5d02c7f68499f56ffa11749786e3597989b8785d8c5a5a919b3309e6cb22e8f4 3971e3fab13cc4349a2970a5c9ed70b414c975ef6cac66ff9f0c9d56d6c8cdb1 c3bef52b1801052c9e266a5c36913957242013ee50771cb5b854ef850a52bfb3 7e67202adb11b6f6dd5654ce393f112f7c78456823d20109da8ee87b50a3afc5 346d8539716cdc694882cafff8a9d55524f3b668b19ae9dbe6bf3da45bcf3ba8 f2791713c3cf4b7e49871cef0bc514ebd245a46f28971cdf26825d1d8b8fbc10 eca750bb33dd2120e28c3bd7d436502c67b765cb7d35d2e5a50dc1747549d3f0 cd4bb2c8d9d2eb49d551178fba9def4e7f2bd8b7f3e445e0920d22127aa72082 38bb5d89a09e3e48c6b4b7250f143b57921f8ef8db2f4bab8812e04d3ced4c9a bf2cc773df0cfce4354e6842730ca0c2cd8b3562c14f007a0273e4c1c21d9da0 a9bd3a130fb0cfebb4ee987a2ad5509bca6f0fb26ac128f601f12cf24a7cd59a f96036d988df686e90c99adef6c73a53f8d268d94f9e4c7b5e75f2ba72b6360d 371aaf309357bbc60248202f909c73b762b7b3d432ce20e4884eccc4e92b5de6 d146ceddefbe72eb38dab039c65c85bb992a98e0b84c14755fdfeb54ccab92cf 977f6dad01d4a99982779cd1bb5a1fc0713961f89c88e66c718dca4d4ab71647 5e183c396289f55365f7f16c56f80e2ebad0c12861f3229123e6049354a9301e f80eb0fe472b99a7c3765a5ea6aa91932038334eafcdd689bd0d946aa39efa0a 81a7e03c03adf02c62c24ead9437d69d4849669033ac2ec704f900063cefb06d e21968ccb3bf274bc853d5dbc0972ff251395960c0db435dae8275f11618d981 1acb099ecf8db23d514cbb8400ea7730273c5f95bbba5903d2df19b3f2af2be4 4ecc71663292a158423dd6e63514742db02238d29d03f843b6393962be2b189a 12223b40132cc8df9b3761dd41c7d6d3caad0a8b9a13e83ac13e5dc46d413675 ed0426a2c259eb820e506b0c3275d35f4246123c14281cc728f13073aea8a845 8f44660f5b1713e9ebe8c454ca973f8d9f87c24b579185e09764ec679518bc84 d0e53e673d32df13fa64c548a70255942252dba798ff10dd9339a511d9127244 ec8dd6d1baebad4c54e4412089d06ea584eb96ea5493bfd6ee36a61bb2d54237 e25054065e64dbe4327f04db63806085ff6b21badacf13dbf916b3ab02c44723 2352d14d8e483e526916b6b247f1b86d12492bb94d68e971ba3212b544e51339 d4b53be3b60e108c721782b20af8ab91c655ad153a1b266e41754b9c06cba3e9 92e8b5ec88c7890d1fffcce7d254c6322fcc73a1478ae026c4ceeddd3a69b70c 6de286d28a0f4ab094e722c89564a3dc1659e646bce3e03314dfd2533a1df875 24f987c76cfa5679ef7a469a2ec72cc71d62b607b33ea2d5755194a971d480e0 e7a6e246b443a1b8fb878114dafaa6bd927c5ae2c062241bce1e43264af7336d 7b54bf52460a8fcb4d574885963c7c05fb483c16ee376ded679f6689da3716aa 746cbfb7bf3f8b5446d4e6614b50f68e92ce9871760b4327b63796f2db902f97 746d5b7c9f049c0088866b1a9f880e8a195a325d3de4ad8ad7ed3344b8d2d662 eb78503fad1edbdead486809bf9928d77d513e62260e06030ee4bedd22609556 040345b529e888e501958280ed14b0e2ea1a6b23a8a304e7c34f8f41eea3094b c24344ad828ba079e80c2db8c5ef360e4339866f874f4236effb1d58ddc7d6e6 2173d6fa5405ed3a2b563b7939a44e3c0dfa0deb6d61267ce7d6ad6eab02933d 3ad33a4364ba3529c192f609b06ae46672b656c6b222cefcea7eb90a09f2583f 0b4cf7ffb2e5dc3413a20601067583026ddfb27bc0dc59a7d8280d2c73c81542 1fdcb88093e8325b1d0e9fba4684d6d0d8b2d131ecffd0b911c1aad8b6198876 4b133f2f2e07b5e9bc69884df2eccc3372cf269c1c09224c9f26980aa9d2fbf2 0e242c8e11c67844d0e56a25dcba29e738177aca7c12c79d7c26d34e058ba0ca 41faafeedd62487dec8275f26abb2f58035d5496215f0b6a6013fdb7e12ce88e c474561570eb336609070e3d10218c517375a4f69018ee34ea37079573c6a33f 72825909c10aa62e56793aa73d5ee7e1500d66085de87c247cfb46473ba0ad8c 5c04201a759ef3570ea5eddf7f0dbf53f628bf2f7ac49946c246495a06fec954 f4e2063a8af1f9838ab85ab6e7c4755d2b3454a65a0042eb12742ed684d5e350 de13f50684f2843b9e86c35257d4f71378af309401c539b719dc60b30a81763f 18beeb78a4d4b4ef1649ac96bc930f880529ab30c20d837e29e7269e9f5d88ef 46083310d4aefafae9a428839a0d0f56bccaba50b1050ac5e915ef7d1f4f1416 0837e1c7e7af1d6ac7cd8e9164efdcfa78910839843a1bd7d3b2019337f96864 3c770d829f173366dc9348a0e5233d25d4e1f7e8e6f31b1dc490c6ca60b8cfc4 ab8e62f46d084d2bd3d494910e05e23c2cdfef58b82d29b295f1a1519aa76035 ce0bd24cf9035aebb5d5fd94fc3620087b5375a13108e88baec652c44754ad7a 49fc6f1add7d10fcd473092d114cc7cdc7fbf99353ae14fd0c056b6b09d013d6 5de82fbd2499beadeaf8bbac0c6b65540a7d40765895f8958d1c26fe50f09d26 25d89c0f1ef027bd8e5a30b3edde41c043ffc543b2845a355e2f959edb0cc4ed 61cda1468ffdc587e24dd209c998b270d58b6bbffcb1f809efec04844fd5d137 f2216ed92db3b17ae1617b0dc2c89bf37aa0d299cf6e6db662ae41ee30d3a7d8 9be620956a7170bf40f3b55c06653b2b970f30960a417768ea888252c7520e81 cba3492ecfd7466ef74c318162e2b42a47d0f83fcf3435b59cee3455b6c1263c 050501fa5b98b2726f1e677a435c7797ae01af22a98ab6c81f9960361dbdef3b 3383be9b73e6509cd34a192bed3fe0b9f0e270cba251db3d71fdcb073b92acc7 2d0fa52e43435dc0113e384706837299ba7b4998376fe6343a9684e93138c029 404cf235e91f85acf2b59c26e2149abbd0a590f57299b63c0e4130af0fbdedb5 a5d788b68b5ad4f45adcda39e5d245cd770f722294d1a3cda869d2e3db2c007d b332b675d62ae5ff53b06098b27c04b3a5fd042b49ffb7b9d3a1c8d98016a27b 1f77faafbe9928ba9949d0e283bd5d33dfa3fc4f806059893148ba91e95188eb 9de70422022f19b11d5e4904c9f2de3e5782580e1d5b33cd52b656be10c2e539 041a5145950339ef6ddaa04df8c64e3ea49cd82841db324ae20f2e829ab0378b 3ae3678d7946deb01dca17c04a31c72eae841eda45acc88c98164ef83de6b4b4 714c1d3aad5a4700397a741dfedbca8715b867074eb5c7617159b480549534a9 0267b06d0130afc14ce12dda84d08c52e2f8a6290d5e57bc5ec7ecb45393446b 437d8a304c70d5b1373a55396e0521ed06b75af48a70be88bb04310567e19dcd b9da6c7cf36f92b8ed984eae2aaad5cdc13aadb9d2b1bc933bffdda75be76278 7b7b6862e80315a2ba7269c6b8b5f57365980df66cdddafaa82f0d96864ffcfa 56d70972c4fcc413cd1dc656094fec75feb92a4a11f9e83eb4ca1eb107ab58cd fe4818da0a2ecb0f7e39bbb4753f6cad2d540d22ffc3b023cd8cbdfd8ae18eb8 2274d3e2206c895e51267e7263700602be8e0731cf441c0cb1cbc845835b68ba d2d84602f4a2913c848fff50bab8a4775586e6bd68ef97821a0c972d6da89a68 f799120dca7bc282b7cb787307410eb93ead9cfe81fa4ad8a84c71e5f9679a7e 6185059adff0d74d54e1b7fee0b870ff21f8531806d1a2064733e207322f502e fc5cc8cd371cb5d286ee5c21b84120b47ba50d203e69526105375d5bd8270057 8a2f356fa4f0d8dea12ba005c9558e378fe89ac95f46f8c1e5068ea652a62b0a 0c1e894896bc38086b5ccd6f9c03ffcd6e2bf84bdaec7cd35496e077763cfd12 9bd4b92f6fe40359b3b6af570c6602b4c7a315c9f8f7374e45f10023b196d7a2 c6371c17b628596840ff24c05813e88e3532839d7dccad899a3b45b8bcaf8825 c5f9c301ed1a071fddaedf6ce470873b5ee004fa651afec0e2500e646a59488c 223d79d6f5ed5a28a7b0199aa3416e7444d9232a4c1c99929c27364f80e09a5d 95b15196f7ba021c8ac6aec2f7fcdf6b7d5c268ebf942a25056d058bdc342774 1f3902a45b61955b37bc4fa49528f4458f8015bbbe3fa2698e7d534947efb24a 10d83b678173a65fae3c2a68330b60345c8167cb0e1474e02e98feb29e1b417a 590e1fe8691d2ca512c8bf29bf4bf4a36b20e248af48831d83cb3a6f32ff420c 22a67e9b1d99b564b4a9d3a0ee3b1d5171d9d00819b5c0f7ddec7faaaf5b2609 7238c9bc26665dbf9d11b1d700fb8ee9f0bc3766ed7e29882b30450f484d6794 e446ad7abf7fbd646d2a72b74af23a38e3d38fb99cf9bac575ffa6eb8aa9089d f0893d607ea3dbf7e1992366d83fe1d4e05b801b6be2c6960dc5ca80f39811da 3bb1332f15a7c79e4d22c8f0c7e9dc8b42965b7e638d7b2ab9525dfad8fb9cd5 78e5335d6f15b75e296550f1241b5dbb07ad4a3740409cf683c979b1030ff9e2 b186560e1ece3753a7d38b857eedf4819435fe2987a391c54404dd09394fbc45 1101233d838f372244097e5c5e3f6df6770f6f5f92ef4efe885db82cac5ff334 47fc9d943ad28aae732e68f32f4148e029b1b03b8919aff6ecb808e34c0c42ea 7fd8ac3b7ac252d58ad7ef5636873bff18a112abae5056239a2eb3ac1892d255 b02ad240974724f8218e3ef9fed1cc83c4516cadad79b66402627cdeabc4dbe2 7d19b78f84c89363c5f5c07747f702b615fb7a27de97e72c925e1a47d11b6109 afe9f86eea727ee30ae10e6bed1c1006afed233e4068fe3aa39735fb12fff237 cfd20164ce0bc22b2496b08c30ec8dbc13dedbfd4fca57c76043e1e78d1795df 6af860fc360e04b034bb9e69b50be96290ff984cb830f78a78ccb4e54871613f a2817e0d46b46d1ad2618f3a92f37026c7e578b0e2552a65e0a3b7e6eef7a238 8e6e5699c24ffd3cf6f3df56b0b5f4b5d689de39e4d7bac5a09817bbab19ba65 f1ba09d0978dc7180ee0aab16f7f61b28adb889bb8e7a183c0ee37741e4112cc 1f1d6f7e712c433ca1a2e2e534252ff34a75947ec22fb9b6a9e4b91fba887306 95e61da2f7fde2d49d5ee82314ef3d769bae23257e2da0a3a832f02b260851bb 6717c1fb66c6d78da48f1ed64a13f4cf3e859f2456f7fcf1c88216c5af26fba4 a22c8b10b3c4b133f522b9ab5092f4edf3a46f7e625b2a7060c25364466657ad 4dc792c27d6ca1671c6ebbf8617b2643b13e6a414b882b61a6eb6466cc1fec16 58e442699b8da4bb157dfc9196335af49b9a427aabec5501401222273c31cd19 f08e3ff55e0336e35125a33e539cf392e1615b7b0283f033f3b5d295201763f8 d3b7a48aeb62a2b74ae2fb14f7a747e5087ab3037424d531da73b4af24ce6e3b 1578988c5d740c8da34b7c00fcff6be019a4064058ec7525d7c79c01d54f7506 e12c488ead45582c40dd9dec120e4af4b4682c55639276bc769f6856b1242ff4 158c62bac1c4f46c2caa521512eb757fc8617f9ebd7a3b4ba58bb87d6e4f9a9c d65a000571479bf8949272703f0c0c75ea2e6234c026ed0f7cc594daf977938f 048bddfa7fb2bfd82ff26eb2b1a45d1dbc3330b980894b742c51cd92e71b72d7 b0b69d39d0cc4102b7a7c09c9f59f4aa2a97909864a49382224da1292ddfa357 fa4e372a718a7b1e1e8f11fa4dc6d6cc5f8e1b4f5c631f592ebe753466509ece 04935a2df06e6a96ddb32d5ea51c12e3009b7868d93b53876565419c6fdd2b80 3f0fc00a662cc951a952e2cd28e807bc65d5f160a7cdd78e2254e769122c63cf 5ffba385d7734caf3fb11d4246f2fce88faa1f36ca9a4fcef101bb1d421aaaab c989f028a38599b9b78437dda0e5ff128beb4612691290a85c851fa97f4cc795 fb8d8117c89bb5d10e9e04eb9ea1290c0deba2ac19432d3ed5c2d143f2d8b825 3209c6e08189b3dbbc1166b06d71dcc3f86d910631e014d28808ee91a23f4bac a1b16d5614264403be459c6f41dc28abdaca058cabbb8c005da7a9ee789c998c b2ce80103a9cc2c08703e6b3003f7aa1751e4b63cf0c2401d457b8e4566b3785 8d202619add65489cf3d9c432ba7fb746ad8be59736671324f4531434381467b 6b4ce8ead8da1030e43b87529a2ab7e2a3de94987556c066bd00362ce452cc3a 452fbfcf1c27fbbb1475ec2e020c04acedcb6bed94c1f3bc14030c1303964857 e7a43318e21a5d3791b008336511e8bc6055402d010a9c34ba5eee6dad5d00b8 0a0b1445e7869ff91958c1578dcb90287fa8dd6f87b97218c310300925e60b9d 24836bbd1c7f0567db65562ea5f087f77478b6c387181d4d5d6fcc4e22f26c6a 15493dba7d010b660cdc37641e0f6ef9efffc94cc5ede125be064c91cf9d4eac f52a5fba163527b2f7fc40ab4ad602e45de57fdc35996861fa73d4bddb71a9fc d79e6f33244b83dea90cad5ba846a766978a9edc9dfcd6801ffca2b72b6c0221 82fdeb4e3c043ce72812b448d8de899ebb25fda95ffe8a00591d83880550c618 cd6ec14cc4014eee008e30a401ffa82fe7d9025f0c4cb8cfd515d2bd1e1bd5bd 2197ec1a7999eef59c6bd5f18651a3c19426356921c0d99fbf939be5418d1cef 201b6349294e8390b8232eba196d6c73b85e5deca14f0fb0d01f3b4b4b087604 aaf299b0d30bc75f158e9921d26e6dc74e2134faa0abb913d23c3efdec1ada5c 203277b5a9ab4a39932d8c0e2142bbf23da22723ff656a9582a16e94e8f7a560 b9e87ce2bd94725f1b42763fc4cba56b4fa62edad16788dc6b644bcd4255811c 5c9c67b60849fc1ecb7cf99ec58d41cc1ce276a8daa6f85919711220c8117c42 0e9f266d497f77e4119a1b7b9a231895489c62aa65ddfdef1ba01da994e5025f f49280ef89c8faa0f66f668ac576de1a1380ec031c20bcabacf4cf280e9e364d fafdef926ea7d65882ddf75ab1c8f1a5eca94208b596409789624288f02cb37e a65b1d86db4c9776affed55497c428dd5d020df4735ac33614c7eea567304bef fbae92d6450a7325da768893bfe7908f71b78d5552f92b7c352fe6297d9332aa af5a0fcf26d4bf3d78123dece78703a5aa2caeac26bdef870e32374cf9e05016 aa8b34ebcb71b5ce08498b5f60808fa557921e0c912bbcb097dfa9cd00a7bc63 2edbf7cb42ef0d34526ed0ca4e8b223111852f8eec6d4a7e2565099ac01bfaef 7926100c625b20197351bc052b44106afb698b5f9232727f0af663d5f670a7bf 4008fe713189528d15c1522444490d88ef4b8f5c6a6d4f6ffb24c6d195dce8f2 b3c9df80002a7344de242916f895c0f079e7d88e8408784e80e83f0289678cd6 eaac3018b39952a0c8f90859f31d87deb6460b1b5776c07afde7d989d699f8ba 8cce54b4a4ed6fb931c4c25652ff9600d8a43079071066dba36290fd0f629901 ad0f8be66cac0677565e1f8c8bdd730a91886b6ad9cc659372f9dc0be107c1cf 3ff7736050b1d3c29ceaba12ab96eebc5708a223df37c949b0c4e738aa58c268 506c85b918bf84bb7689601414455c1971d7c487b8db7d8d4e73afe950a6fdcf 92c5cd137f74fc607039539c22882f6e1ed20d60a92b279c58e62d410e8eaaa1 36a33ffbf99e824957b784cbdb5f339fb6eba584e696495ff01ae7c2170b4143 fd3e66f15383e5fefc7194605486379fe71eba8beab29f748ebacef779df805a 132c1600763432bde7864f1c5e5009ecf535cad701bc2d417f424824c67cd363 f18444af76b9d36a5e4cf5622ea971273cdee056d319a32ff1b8fc1a15b1be09 f906c44c003280ce1ca7895dbeeef94fa997ebde7ad5871aab0d9ff8aca2ae6b 9e1a9800a411d10d9e8732cf7c31213fba4ab0410a409e6e77717eb92b555783 400664c0e41cdff481ae9807a896f27ec3b2f5364a2e6a8b7923da043c4a4723 a76f71382f0467972e32b609924324155b4444fdd27e561ae1fac7999e0c2f46 8414aea106054efe8b247a1fc088cf131b3fb68ab2d85023c3accd41446f040e ab32582fa70cb5ff6e75ef6c21f565a16362cfff8a04d672eedf6bc312388d03 7e300ebf5614e4e91381f0bb863671171f20109a410857dbd44300e0405cbc3c d1c2482108c809c3e5780f5dcd47df73f473669c541e0534178b5b07544c8715 45ae1e81c4669a4da584b04b6e024c6260d7ad302c1cd2a5028f8fb474182e36 46caae638112c24c0b845c72263b2f0c8bb6859bf1cd4a059797a976796a31b4 d55c27bba94cd801ed16bad429cd59e2c4091e377527fc7b1944f91f74e77ef4 5b28474d198d25b5342a8b83d9a75b583234a101890af2e1c00cb4e51919db99 41869d682ff6687936874061e77cd233dfcec9ce36dc0d5e6a2304eda572832f 15a734422ba5aa3e7bf13f7d9364daa3eb3b6b250a7dfcf0688c47344788d4c3 2faa76cb035cf8bcfd8528e071f189fc53fedcc60e782a6adcd4965cdfc1d5c9 71a865f40cd0fc2c908db4c8b08a9f12d41ab76deef9742a83ab076e2737c57e bcb0b167394678244b2280f29acc5ee9c1da2ee95610232ec8e0462f69ff8627 06bba749e7dbbbc61460a87c4fcfb0eb3b8ebe782bc886970d6dde512311b474 fd19524486fb6f2cbfa0cd4352e87fbafbbab3ff7a3ee6cb49217ad12208cd65 0b5f64e8ddd04f9fe6d2e8d016c69f773763d15764048b9f655d677de11a8c4d c60186eaaf5cd5442d4790b52b2a92a92ec5bf2982d89cb7d41bdc396bd29d52 d8a9015cb7455bbe9d0a07de0574e38d68b241a57a445af60d4090b792c134cc cd03065b487bdc7d4fe29839859d569800465d3663311a9e0e1e01645979ef10 1798b58eb46c73c0f614214a3055c153ba08f0c1339d40f0424c89a5dfe9ae56 25cc8b0107c159f47e5d06e695fcc6834ab60696140500f599686ffe8fd1647e 22b7b48bb5de6fe7b639d25953929b8827cbfcc77039fead6b86b2b3ceed903c 9cc7fa9c73969272bd78cae0034deb3dcbb87c47ac82101bdb233d0673224379 a218bc306f9b1c0c67d26ffa94be818e6ab22c41fa8e4d5f1967c061e1069a05 e41484d67aab67bcf5b0539c250fadfd41358ebe4433ac94c78a0a3a70ea537e a5bfce1950faec451bfffaf529623567f5a2e465cab3c7daae545e3797e8285c 2e1985e3db99efd69d42034d9fd55bf415a670fda6fe1cc9e5cfa01d34c49bae 687f169ab4cce1506137eb9f212f8b21cde393596a603cfc1c33394a90110016 c495dfaacec7643d6c112bc8f32c6f56a994780350d198a3acba79cfb9054ecf dbb78035cb532a5e45f7f163b2f58a12e3a796ae3b8d7c616162b4670f43988b 713724f010eb08da722f5a68eaa852397d72384581e31ff47c0642409e2bee74 2a44b4d6e4ccd01cee720af84f88206e897d6a87ee1ed76310f8df5b9697ccbc f6df7edf927e9b34b747b7d01e57710a4a464e681833f7e23afd96c3399a9ebf 27a55b8e62e2801e29996b0fbc16a6e1c5587332bf7421dfd920c211afa3b852 b0166a3e3ec3b2426bfce442070753a55160117f015b77ef42825fcf68c38a86 95edd872cdd3c799bba141d9a083922b8a286b770cbfc1464c7d5ab48ae771f7 6e10d9e1e16239d908739feedff825a180c54014cd5ad5462ea9aaed01ac28c0 b7a96f55c4971fc717c355a31b07f8bce4cc5af313aae3b74099138ee3b234ed dca63c17e0cf11833fcde11c88551a075efb0a1c78b678d006e420e68b9c72cf 3d8c1d3fabb9a42ccbc5a1af264cfa039951d773fad383bcee7d7dfc002976fa fb6f505a780da44100c2c0568b136f9b284a19d551fc2a83a1b0968d54c5c0ea 8ee1af79b56b448037e9fc56854d6d6579ac3d6089e422c849d6c8060e6cc0a5 b44aed9699d610809236423405930aec1f90a4932f5916d6fc470940e266f61e aa076a81c5824ecf133b50ff2088cafb7f9758cc6c137c1b64debcb13d42e7c3 ec21b0b0c0de89e2a1a9a1ca7a0947647815fec4ce8014ea3ff7ce77e785b56e da7e650ec8c336bc11ee2bc5221cf0473d5c743d02af08cfb3d116a82e249fef a7a528dce28f658467dd73cfea1044c61ad42277f56a66759ac9b6b90a0e782a 9305d1413322e2d1ff3af6a7186646c6b2311a6f95def6f67c161652ea1f236a 6caa33dc55cb93bf329edb8214d2e0627cb3ca0a0720e37f93169b0c0ba570d5 677912a9233d2f828f6e2f92c20782c35f073534dae96dbb32c38d4d368e5600 6d9bcade5931871c30ee9796923b13ff6234525c29c61e921fa44036f29d1900 2caccdacdc04a13249dfc70cd1804050fa781ec251dba6357173612a3b812135 9d8d8a3f0a0b02d948dab5140f8d5c07286d7c575e3cab9c96154e3157572061 d9753b212a9034269818585ad4e4ea91e43fb287b9367436b4a091562dce4b44 fdafd3269c6bfc0f4b81f1c2279e8512ba0e71e6950b260239b1e4519ec423f8 f34e4d09b382a480b06e7cbac67ca2311ebe268fd4c2d9f78ccd2b5ef7d87ba8 f5e3918ddfe477ecd6de74e191a5eea835178929b9c9f3986c674b5e6fe34521 3c76bd21cae0a79a8669965e36f83580f9b1f58e86d6bc7422797bb70411b48d 4d20792c1e5044d2524208b1354393eae320a5bcd1f681d469ec9c8a8404e871 5acb81bd76e79ef7c61c43097b538344a77ea6600993f8374d9cc62bc6975f3e 8d9c36e70b2f442c2a8909d61364a1fa74bdb2f4cf76ea958720f92d0a8c7c11 c2ca48b13095df6560178de192d878f40f1aa8dc6d93e20c2b6c6f2b9d6df61b d7c1742625510ec30414645d80905029a277d545417ced63cf6ae4af321915c0 009236bf9081ce84ef4d337045ca042bd501f0b71bca754fe0814937034270d4 d5caeca8d07a7dfebd61b470efeb4a1a929cbf4a3a525ca21f5cdf0455effef7 f2b790d6b6d28aa9e2fb601b4bd048a72e87a4e7dad3e2e1b8db111b2fe3a7cf cc828b202ff67dc2393059c773b68a44e704a66048ee8f4414c5e5c8d0cecd68 9effcbc8dad1ce65c0b01c48b42f2e02bae2235a3e0714f5ba0fa686b29c8641 dac3dd6be2165f69208f4e0011e53db376c35fb93455c94ec3f821e3f603353e 30d3625a8e1d60ed4fd875806a22baffdb88e9643ad783d62b02d7b4e2d9c87a b90bc9bcce109bf4d96e1a8906db2a09aa83e7584f52d7fc5866a508e09a2f31 31641bb08fe5f680813112aabc137069a3c8952ff5b536066465c6b0ccdfd2a1 44ddfd997c6ed08d67cbbc29cf4f4ce0bb885d38eb467b12d499042ee34e53c8 7ad040033dc8665f1029ba3e0d95b715f054a7bc0675434854189318e8ccab44 5ddeabc4892768df10e0a5c747a32cbaa3beeeae7a1c94eb3cfdc8d050bf2370 ee428f060f7d78e138d8a4f56aac41d12dc0afa69ec161c970d77256fe58d225 53539606974a2bb2eedd3bc783450a0ab7f5eab6b82eab61e42b2f2d9e73989e bee2000e2fef56fba66a460fb0387f5d30377c277119d34b39cf932edab8f083 e25ba19fa8f2f785de0a1d69e86084e67bc64ca3a5c937e1b28ff250cf39364d c9034d7eb4eebb4b89d18bb7bd0083ea52ef01c8a227e940a66f504e2ce5fa96 f5e69fdb7003f01dfb17aca7f9bef58d6ad286738627b46951a10cbb3aaeb30e ef99368dfbf0a89e894bd4eac39f91528b7b35289c7aa64965f292d545b4fdb3 8911f19d4b0cd79af442fe11a3204a789520553c423544c70d1a85b409c7fa20 c115a87e94db54ceb094e60d6543a8eae7d28e9d17d13c827d46e7762a4afedf 849facce9267dee9db4d8294308cc2f92c86c7d738895d9932a53419c75a9dd0 4a1f9d780cd1397cddbc1cf8e6e94d88b397769a6ca40cfdbd8df5eadc02f388 191e4714db6580f9ab4168c6f440f513f572ac5892677c1a09d98d42ebe2713d f0d14451801d1adb6a1a030291df1a9e27efba8a54d9af636fbbf886b69d1fbc 710d5f13e3ff94d440e0274c82502d0844d9c92b2917c68aabb36af2363f6f6c 1a500f46e3eda0ef2a9e728d77f319929ccdbd1a29bbd5d6ad106ab5379f11f1 e8f995b2aa748dc150969662cddf0ebfa82a8ecd2ef0021ec416d79b446c57e2 79c9c8e7e3cbeddadc552809bcdb78b60b7c11be791c9ddd5fd17daf65086e6f ba73cd659a80f66f087c6b082919e3bf222cddf4f9777d5c53e63dc3108d0959 19c016eaf19618936a0a2910d9fbe7cad72764a295577e3f5c9ff2338532ce49 25c1309bb79a599cd4aa89b2ec000fe889e9f8a045d7f6f2fdbfcc2850c93585 4125cc113bff33313deb2191080b8889f5215a79faae893b87dcd5455731e5b7 0ab77ec5fff6c14eeb5b7386763e32c5de6b11e761b6a8435fed517303dfe46c d1f357c4950208f374d3c296ee6df4db71d345878d4d69595b3552fecd5cf34a 6a8ad6d0e229dd2fd198964403026aade17a55997d1e72fa65cc7ca01a2fd369 fc988133e1a8cee54846a2a58b8b3294890b80cdf59ee40f039c0a10f608e413 472841b927ec065abffbd29457c9970c4565f82129c0da12719a376c68a80c83 6eb927ceb958ffb789b1c4e9e4b9bc9ed11235fae170f6c634507a3c926269f8 357278cfb95e01006e20606ab2bcb9f65544b4cf6da4d7b30f58de7ad420cbbf 77495671c3f12364da82b98445d841ca07e610f4fae2a4920d1148f039081576 9f0c91ceace951ae59e1c2cc671a29da7fd37a2550d337f5ff16dda1b2d1da3d 6d178d760e5d2f1dd806246cee93647dc67aba88d39803514e8b610a2a2030c5 c7705c30eefe152d5656cb77034d6bf19e776b2219d00b90eb597309c37ce7bb 81910e87c0fb16830733a7f4fd601d04ddeca553d72bf79d6797f84d86681fe0 a3ecc21260468ab9a09b29042da7b1562a8078c0f121c157137520ccf9b1f04f c0a12c2bf7f3f069dc5aff1ccdc59dec41e4963962aaf81b1d23be2477d7ce0a 7ceba0c9d26fea67703cff621483ca0e24247365ba83172f3711c98f1ea77890 47b5cc62785233b22caf774ec77e2642764732fed19987d5fbea0c90e0f6f11e fac5cf8e6b0d8eda543c3ca27af1fda46735ca43afa3d8e1e1fbfaa97fedac8e d9d8602c77e76a7a3e48724d85294135956ad630ac67f57b553fd5b9923ef518 7a22c97061a1a944da4b217bc3c77eb64d1c95637b506414a25d35113c7161f8 3b7edacf646ab04a9b8d1150fba3c4a9bd1fda44e51d144265a5df3e9fe21a4e bc3c806856eb396ff8788c7c3fb4114e83a7d8cdab9267f75621851670805cfb 21d7c4e9595509615ac5f7ce549ead558ed24abbb0437b275c5f3af244b0caf2 7a424a71f7b6407afa9d2a4c73a33dce2e71dee2b13ea178d4fd0cfe49444451 565a4fde6c94b14c6a220ee8d6648accd5a698b8efb933f8726e2527d5a19069 996249d342b22c52ec63ebd01cab80915ad26e163244419e82c0a2ee10714f5a 2f0ca1bd7ab31c24c2d9f8246a38a6a322810c099f35a39d958ab8ce10710d80 fef41b5cac74dade333e5495928c9b8e36d7c9adb9737dd738019447588f8687 54da336c123c4ab4fbe2ac7e9f3be259c3babc62a61869626e426c38a58f5b4c f22fd228bfaf39fae02f381655a87d1556d5fd4d0b681e8293cb2b2faf33531b 7e0617559f2ea3214b93c426563979afcdc2cd7c58a73d67abf483261aad8f5c efe24f91d14ff7095e93e1075b73d7da8d4588c3af4345513cdceec28b51bef6 b2a1d217cfb8abfb1a13891ea9018e30f47d529a6028a780f56632af01e5bdc5 de397790987e5dc474f4e6d9a8fa7ae4888e95d8ebd43b6d9bb3767bea930459 12de8407f5ea862e851029e842cc0a6ed99c9230613c5226485b1796404dfd72 6ffdc25dc91b4de77f77be0eb98428eecd9758748f8d0addfcd33457aeb35d60 3a18a0b9da74d3c69f6b5deda11f578aa91956e22429ea789f38c802fe57dd7b c273929a3156368ee10a3a052fea81344efc7aedcacb66311be1d51ee7fc4417 8015b69d06169797703c54c6e321b9b500e31a0bc14016292bc65a254a26bdc1 1da9694ac7174103d3428788af6f5e929f22e167d8fabffca7e0367551b22a16 42d826a9872ac5333d5e3dd3d19e176ecf630d05def95dfd5d5875eae03e4c48 8539eecf5c2cf3ccd489241150d8e481e707525838efc196eeb5ecf48d2eb2e5 8cb0052110927b84f369abc414b839df0e6783a717ca0ccbf36d22d14d25d205 ae90fb262252bbb6787c05c37bd02d4385a0faf5359a94114019e10e87a49963 8d1b307748e7be990750845570df2e3ae2c4a5d3f70b376a447dba6d425a1cbe ef7fa6f9a1d4d5e35817666cde63935e2e3d0243c18f497cdea262e4004f0897 296322d5fd483a6ad6e888a58452859aaf040d67440e294c523626e158dfa50c aa9bd31771ea45b4a9f523bfc241fbcc49f92eea95f59fecdbef315a7ecc1385 1f4974143c92c30342d45bbd972bb4972cd0d63bbe9a5bb746f9d27447d159cc e8f8e9c888839f3f1659b2aae706eaaf95d52abe858c859ab7263af5b277e3e2 7dcc616dcde7e1daddfcf2539f751dc7b63887dc90ae4063b81e341c6daebc5f c5e19c2cd2bb57625685732f1cecfa12def3791f03ed8026f594fb79573b5f52 9e0c44d68b65e6bdc327be4027e530884582a11ae31f6ac6c952e27c021552ef e7776d44648951f58ca8b5b10596fba4e23e8d6b842fcf4ba36e9ad2c323066d b7691e573d6fb17b25f952956f8dd643138e56dc3064f30163857ded2480bd9c b0790124c82dd6b2e7fba12b35aacf1db7f752eeca3b3cd1d29c5e6d9ff9edc0 8edeb810987bdec2e7f98a184ce1ca168c0e988515562548d443009df6d44b20 8c0e3ecfae36871253cc3d2c531d255a89a7aa9af07310a60b120ffe9c0041f5 d949b746044d1ca8a0c06ab305fefbfbc6e7b255b2aad33af4b9f726b8482276 19ffa9a9c6623320b3766d2835983e84379b4b5b9641a9c0ba804582d9e7f6a3 cec60053dd8703c9cd3ae0927621622e6a1c08c659c79793116629b9e0bb1fd1 9e5cfbb3a467503f3f76e5c56a29003eb7f46edb208d3b2674f2b727cc0c1bed 83c99489af369d6484714e462f2c1c9b2975d277dd74b0809b49bc1511b4fba8 1e218916e17a745a6de8f6f258322e5438754f6e5ac751a242178a40df597470 440c4c479d4a962870b00d6871dbbda6b085af70227061e646f05d017ac23f9a 21b5a64002747539f383904d72f5309d4088f4c852c0a7dc539cdb8cd2738148 de14ad544b5321116df199d0631acb4d39ac80d17a50572b124d41de79e5b8a4 6ebc23eebe3c78729d53694cc77f01c3eccdbfb7015bd4d862ea3543bd37dd42 0e34e61d98b77994ff9ecbd54237f92c0e866211275ea2a6bcc8680cb4398dc7 c2439787f06b8f05d981e2614fb914a9240ffcaf5f1e2653e15c5b43f092a2ef f5fda8da43bc07a13a2ab3b0f6951f803b02a7e7432407422ded4d6522be6102 500da4b1721ff74c385a90baeedcce601ec7925b7d47888f1b901578618d2d08 43a4ef0f34dd52bc7b914ae2ad793f8bc24acad87f5bc6746a92639bd2c8b6ef c14736b86dea7a8cbc2da384a8cdfe6e34637b74f10ab6d0f7174dd1ae337226 c6682b596ea571eb2b16cab4e01b7e20a03a02c876fc7206ebc508822e5fb1a6 5b13628a83b6a527f2cad2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX9 %!PS-AdobeFont-1.1: CMBX9 1.0 %%CreationDate: 1991 Aug 20 16:36:25 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 65 /A put dup 67 /C put dup 69 /E put dup 70 /F put dup 73 /I put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def /FontBBox{-58 -250 1195 750}readonly def /UniqueXX 5000767 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be79011d1f5bfae5c1f476ee6f05eb1d2caeb 269958b194521197b312fcced4867f3c8fbd030bd715d8ffda1dcd454b174e7a 1a97b59fe770e67702519d9d9b23d61ac08424d55fd4dda249cff0b56b9f3aff e9d0de215c02a52a6bc77155ff6b8cba5cd6646ba331254ac58ace650a967d3b 272331b87b6df06d5ab9d80fabe9f9ceac10139b61244814dd9fc295ed42d1b5 cd11c2e4beab318b20f51ca2c2930657e5343ab7bcf0e8870a0d12de4ffacb6c b3fdbdda481c2fcb84408d3d902e9a32070b2af6cd9317a33a42a43857c114b3 f4c3005cef9401f1c2bad3e69150d7145b79f95c9cfaf7a335b277e6435ab374 f6a3e78e124ac1e4615511f743ad65c5d778403a840310ac4902985f107fd33c 0049623e4c496cd353d2ae2a4804110c6a420a38ece5d5b235c5e35886a0987d 284e6110527b653b1b2c68c636ef423536180acadb954843eff4d9a82568a713 b682c574e30f793f093aef755c650e0e7175c2e3138695212d9fea7bd4b5805c a90985b134c6bc15a19afae0bfb3066363ca3e2568c2ac4559a69fc32feb443b 61243b4508b7524d974636855c83c8149d489b68fe18bd497116a953431251df bd09fa1d2ef66c85b997ab2f6b7c6d9d096cb43931379ff9782fa00c5f3cbd06 04265d16891ffc4f66e4a0307765d384c32aa83a4e4f89ac79ef8e76eed08450 e3466fbaf54f85324f0a4f04bd00ccc22d32e4132c50a6d0323d7fe3092fe211 9ce9d16aed9bbba6bce9e31811d57fc244649ac22541dd16e25e5c0e0ffe02bb e49105a4459bc9ef49d4d5a274a51a23a81ff225461a812a26efa77b9534e2f2 7241466dd1de91a34edbd8f129d985a13d4a4bdcad32201dea3ff5659f8898fd 81229984727dbb16de926d5f7bc5563f98a3a1e5380ada95c1841767178f3ab8 73d0be42789d6f46087f219d68eb50eadbc102ccab0e07544a4cb5dda159a110 97674131df468e6a6161f9fe232f73011146321b2476624abd0b993d7a255428 c4fc8d239c91cdb4cd67aa88d46c02edb946ae379435cb7813dcd881c71e3e51 488f27b6f4bff9c9a2b5147910b19c1a2fa3348bdf58179c1f0971319d8d3c9f 744508acbcc3bc8d6458593013e7431d286a725b72ebf7bd2fc3ce75f1a273ff 315f0e66bdbe69497b2165bb851d6132c855bfeb250c838a14aa6764c7c57c2c feb5f206857af23f72e6f200bea77c976a9872e89ec56e1cf0be053e776e1adc 47be12eba4566bc8707d3789cd93cb47fe53fa3073992d8e8056d51a2c496e4d 58bc6246ac24899a7b65d7a782caf7788992ac8e1d844c7acb16d642af6b4f3c fd30ed01864ecda83d13528ca13566ad040f38fa6824830403f87bc28c83cddf 0bfcfa3f0ba636a4a95e055e71aec18a482030e9ca13b66dca38110a565fbdfe 54a83e37c82a9a9d1faea9f0a78710300aed011395b391b54788074de077c878 d6f872c877432b0f65461dae1a778e385e6fcaaacf3bc3a36e1429ef3dc1f48e 684e0b2d361518661e987d5be5547fbd929ed57f59491e8906e8e20cd30ab830 4ebdc8c58cc2b029ffa1fba84b9fc85be17516ad6e64ae1cc6d1392f0c4092ef d6f4c7942d938d00fb48753a6e0b509d7d136af6fd7501c81fe43392a4b2e048 11a9d823b8e07a45c83480ad8a34ef63a0db2c162de68617923bdbad0c3620a6 5195f8adbef86aab3ae64521746cd54d4f1c9208fbece69fc3921e226e1d9f68 ec7bf44d518ce772b141297cad12770c0dc889e3e7bdf23b93b3459c3cc7ff8c 01deb0b14e444449688366f8c67cf17c6cac626083de84c3752a5af2bcaa2f9f e9a66e10406750a949235f6f4cdbd207fba3539fb62ddadb1a84b15f50bb06b5 a3449263b82777e3fc3601d617ed69ce43ff7b7416c00eeb94a92abe5ec743e8 5d6b070c5a84a1664eb82264b82e5638e0605eb64059fa91c3ff3e9e0a709436 5d33de2a28558df9d50c064ea04a0f79f9840f377e16aeee4687f07299134c66 af5ef62974f303b7a8f5714c4366589269c62a7ced7b7b8db8cb572f35aa8be9 4ca82acaecc4908e1e2237ad9e3c908f96ead79d65ba84e811c8bacd8eab3e90 76bfd6af6f6d2313dc179d4d4ba64ea368b5c7cfcccf11c751ee13197e06f2a3 57f45d0ca863d5e559fca84e2b0051c2885b1d0117a0bc04b62b4b2f00d3f515 fcfbbd87cb9e733f9cfb0da4866495247d6f8acb6f358c44c7d5cf681309d24a f2abdd9f001aadc9783b1290b7b624eaf9bc4ef1a166e904f6fb5d789390cf9f e4812d51fea755ada81076dde414a755cb0324b37459c28bcd13075891561f0c 89b2e0cad98dd0d921132da2ab98e84cef4c62ea89d54d963529d54bc896d043 115936065dab2f2057600cfaee3a035d6a738505330dcc5a42d50b403507c6e1 821a46f721392261e52ff1acf124f0caee2a278acfcde734d60ff03f4c32e8ad c0b9c7b0717eb08c3d2bc3d98ef656a498af979803c35256730c17477fb13c99 a419cb105b8eb572763696a98f13232ba5db7d84522d88fb7ecb090b783471a5 ffa9c9c32b3f8edefc5548764a673a147b8597a6bd66896aedd55939b69a4c26 a189f06927f8a0b7206f5e4a4be1ce90d63c527b7859d9edbf00f6a864d450ae 62d76ecd4728ccd4096046be0f4748c6af02725d16ce869330ad0f45fba0c9fd fff9734e0a6b71c0b56b2efedc18f4f699c23c610ceb7d7236034ef80d4006e6 d130ce63c0a87d2f89329552ea88bd0da37b7470c224f7cefe4848392731b36b ef613c5f93ead6777a8d3e502e7c8b766b2c2841eddb93c0562910f282f50fa4 70c03be2e725a5f15d44ceb1975bfb3b0baed764df7ad58990fb0e1f3573f1d0 e654e329e7c6ecb6aadac7f7417d3e36a790fc683fa3cc5d08f04b61e2d1e667 1e1e1a6e841689320ef61b18c011cf1a7dc8ca65666bf057d0045081af6fdeb4 1f2d19195a8c201b317bdb5be7ba98c6b281adbdd5c31d7543fec51826e48e85 73c6f3237169ad8d35fc05499faf16c096f0347665674fb7faec869c07816c13 493393466af83b0dac45e3776ed7926be604ebb34377f5d6c6f99b4bde4a613d e81e70739d9101f2b5db9502ed50e24973e44f523b178ee49b93c880d187b988 42477bfb109c78d1f18aeb7016615690fd4c4c6aa5cfea33cf281005babc8363 0d46b3b00389f0aaabd5e913bc1173f105c216039c8d6f86c5770eb7d8f928c9 28a8e8b731da0fc2cf6ed428cc58a0f94d12d66301d374f63a8a7ddd3db84a41 bc79bc08fa9efa8215330d5ce308929095ccfbbd47cff6d4fe6de70911aed723 4ffd6054bf35e864429fe19e9b40293b26b4bf024aa98301fbaf1f942de3c8a1 2ca4f5e09c66ee4a9496e5a0bb368dde8c4d77e5067a995022f8d79fa735f56a 7e69069ea1b306bdf3e3e4b45e7baab3a108d5e245a0c81da7e609116e2514b0 8af0b0373314731eddfd803013c7c99aa89cb0b0af6d5200c64371332426885e f6935dcf61360de126e9fa65482760b2787c74070debbb07d57633fc0e0d02ae 462a764624bf9ca1ba21096e140414d763f8e2f7c0b3a89f64935484c24abd2a 054e20164f67dc722212768f349503e37fce825ee97950250144d4a7f1774b52 0cfafb9d23bf4100d7b1d1d2371e8b43ee1b61cfc2678a68f91f742e86f44342 2415f6d75dcefaac13189345c2c84e1d50fd8c0761edf8ac79841a8494762e7a 7cdfc59f2bac8afe39c941ee0554d2d1f4b2394e21f736d71fe2cb2913aff6d2 8a12405b6e99e6a25a119f22e0664287f5537ccb1afa04bf39c76c30e117fa2e c0ce02d42e3c99805b9b34eb0779fd6e7e3e573333473a71b51eb7f48b0659db 134d8c18564485b59935f39d024d443ca1a0f2622dfbaf4f680eeb5da490db31 f6001a36f7190132fb07f15844c9c75a95d6679b09ff9622450c9b763b95725e 88f3b7c903a95b3a104abdf843327f161b1d7222f8167ba985dd29295263d6f6 9a487b0677db489609615028953cc8383e15d65508499ff0c20d21329bfe236f 12afb882dc757d6fcc08dd83b3b2d996cfb4fb33f25385b4f9a9f089596a6e00 52da29f89e38bb537882b9e2f8a4ccfbc59b7331a9b1fc6a4db3880ed768e851 679b77176fc7a1964e64a620da03823ccb4558ccfd0783d7630a5806ded92968 63980e2d9d6188d65867c1b950b02a76c196da816ff590bea0da797d6622306b 2f64f0aa9cbc42be2988920be8cd0f7ddb33ee7f94e2680a7d1c67467dc8d50e c8ee85d3dac1bd3594ef49706d4c762375a344c73ad5262b1609d968a5d36e2d 7b3ec20705d9ef76c7216d578f35f1207d7d43785108fd77dc15ae847d5f5ff9 8ed9a7442ca629ad8c8d7096967e4c97d2e59c3d308775802063dd95f3b5d973 6a3fae33c96db519efeb0b1cdff6e62571f8576c15cce27c8c0daa8a2732a409 8d495775153021cedaf2ffe2bb5d4ae6b8696ee316d3d23af75356034742e5ca ed6234952e12e0074f543611f339ee90182005fa3703ea20ca25e4a38dd03cfe 2a4ee7d92498ee7f41f2ac032462bdec171ed6b19098050a371c7704fd8d9081 e5b281b7ed11092f5491f4b576c4056d891319b356c5fa7f79844a3478530df3 a34c5fb1dcfa45a27dc03c2b3197f7fea66fe771f259da029972c8c7e09d653b 87e402fcf93d381d7494e437bc9748f4bc282195368d766e00e5cfc09186a4bd e8ddd6de7628abdbd2dd2f28b52de187e8717aaf2ee81bbbd4d9d7b14859f977 09be3ed11271a1878b9997ac16f1036848e39fa137399de4c29667ea3fc1f866 33a274c69601c2dcc489b78e4650a938c7b9857c536e9062156732b50f666462 af5f6da45ccf64b8fb709bcc511e1b031afdfe571963c4e962518c75525d0a48 124e974035e3aa0fb00404521e00e7aad07143b3942405670b0141fa23167156 063636edaf68258c84d6b245bc712d84949b7ef4657952e2a97e36965c22c115 31911cd77a6ed1b3af4a6a36746798d362c451ca731a7f364539e15c57766dff 3c13e09b72317145cee74b1f5ce3bbb5368e390a090f01670ecb288651eeab09 eb377a32b629a44060aaa9ce19e0f46b64e35796c2642ab7671dce52d50591b9 da0e6f65fc52d338fe7b3672cfed27514efa34ba35f56bdf54d4c9cc272dfc20 e73501ac55ed5585e8f0a9403da7fef0ec4c021449a4995be733e53c533d33ff 6c77a1ec3060467170b89a54c42a9d25dbedbaa219b15bee1eb4f54e186b2c48 390217010ff74cba0d7af1e68e2d9a1547eaafa1ce56bf7b1ac7876e0759063b 078d95aeee1fceef4bffecc98d6a4932581b35ffe1752ca1c84991155d4a2f3f bde03c333984baa77ac262e49f2da3becac182972f5c7e2d3ab743a28f35e099 e2b81dd346e77fd98b69e8fe935898f723b9847e970a4794acf1593ffca27442 0ab0d55b68b9192d2108caa75bbf033ae12e68a7c0ef34390f4f4dbd7bbdc95a fb17f821bf0561c48c061c427b90b1fce06f2901679fa71560f89a1d7bfd1991 3a883790d3c0ee6621a77d4c5c2e6907807f2cde2b5e3f4b66732e5d676249f4 e19ee415b6ac5ad81fca1f4faa2ea99b4e6cb29d99ea4f9630b2d063eadd3cd3 05e82742c1593b0b4c8e663a1aacdcd1d4ef492bab6666488d2fd2575a88b155 7611997d423245a7708e2960ee44af66b4d1376adb03ccb29b960f737f925db7 a9c57a9504d662c2e238a0df90a50a225dfebebb7f9c6bf6060bf0d90299fa78 92ef881dcf0cc8bb136b0a974d5236fc32ee7dd0c2c34c635008fb435e7cef55 2af95bab52087e82b0eac86e194f27d59409965aef96668633ec5f56fc699d8a 0ee7eba5fe9aaa4b731d25e0af51744e5cf5120fb0a932b5629874458afe0797 5f1287e2fdf02cdd20d60b08e1139348df79edca92c5881ef258f994e4b439f0 339d213e769a7950b7d08f54a2fd50d9dedac9714ac58baf7cf22c55d9bd139c dc794e47b2da1cd33e879a1bde0e5014d62fd4e6c00d3faac70a6736a5302bba 7f04faa6e0fff61907eb2b76720e4ad31f8096807348078a9752477e687012d3 7b27bebda668449b5f5a79f97c57a745ee91887ba11e590307a47e98cbe8af0b 8283bb846f81ab98e1f3a92a677759515c7b1ce34b1891e53bcf6118ef16765a 2a16a2c742a44ce710134829a2f8a0b4ed3b3c0394f4c3144c3172a60cb57498 658c3254c01fa168b42315ebc376c91599834a165bd6ab8a168696b42156f3c5 ff0a620337b3a32b981418bc023ead2c8afec9187456ea38571b7c0addc4d7ff 85a42f9154f2b680108251e050f1c8e76e152fb951911e0e1e52948443c8478a 02f69fb668c1b33f64f3afcf3db0251694c4f4812aca56de7a28c6739c082a5c aa9fe48a7a635eb4026730fcbd8501f68e89c1f822ce0a127511bd04a9698a52 a2d01c08eb1c7f18eaa6a37b9ddbf5fb4143cfa060e8a88e624c9c311965a695 fa5428a9407c78603aea4fc6c1b41d21074db7948330c6bfd6d6cd107bd49b10 2ba315ff9a90aee38484d17c76eb11bdb26d58c27c4f9b7bdfc535614bd3f81b 613bd3d0231fd4c807af1a4eb68a1f1c730454ef8c2d6569217823773272bbed a2b3fb331bf78d73abe7117652583a439fa349673904dfda43633d173b21de82 1ec556f7af219ca9927cdd05098a14a85875d84595e9f1780b25f592709d2d4c db73cff5bdbfa12c6ebf22270e46c05e2290ddb60bcdac16bedcd7030a3af441 7a1a50aaf6db6f38a2baec247ec858f6db582c9570b15ccb4bf660f7fccd340f ab92700a450d6bba5fe8883c6cb3c3bd306265ec7ad5b568f4a56bbfeead5218 17ef4b1076b670cef9c28f3a8527f494765494c6e3467922b7c10fab2b3b8e58 13b58efba928831b4f719204aab8ff0847cf16b3c3383a1ec06eb3241027b380 946044d7eaa26d5fa21ae6972e9eaab8166754180b2c49c955af0c9a039952bc 0c26bce44567458765ce1955b2b6e338d0a9fd994d1346e42cb4ff91772629b8 ebe90751451c9c67d75462b16ee73becd79d7ed8af7ee435b90f7a59b4b02d94 0e0fc97cb9da54be26748189babf9ff0c34e1e5bf8a45ebfbfd53a9ab168fa18 e5f804fc1a6c1eb23b0af9fb222492b7497f0e5a87b9ebae61dd59123f9af7bf 374d6f009abb55d4024629b0063762bdd3fc98f1b9c93ef45c20361816a3f7e4 452f940b08615853d86e2cf2cd2417b97f4deed4a5479c1a042214ab482264f4 f49956b07192eecc87b64e4517f29e97709a0356699448ee7557ef1afe8be199 9f2d4e8f692705323fe63fc70411e2389bc13d8ee7d24e61c7ab2f83a028df81 6f1caacd9e27c8c0f376ba7ce3939b19d40378832676dc6620567ce90a5a6dfb a3443a787ec6419562725061ef210e38ac4f37e67c8a9e509e7910099509771a 707b9ac1c57c5ee637a57e82c8b487a74d5d9000a675a3b81eac6b0dd3fc4069 30bd801ced913e6eb62814026249f62003da18965a32645a8876b9138a3a3d9f d1e883eb5500792efc2716aae65b90bf1ccc71b295feba52535d27df4a62f82e 53d3dccc2b77ebef5cd225c7e5c6e4de66cd4808f2be63fd4d78b7746c6e87ec 6e44487f6aca5eb8ab5b922c46fb459f8f9c540ecab17aa874393ab35a2780e2 841f58d6b0239fcd829523521943ae693549c22ebcc7d3a51114bb199e611c99 66af1182a9ec3059bd388a8a5d54303024cecc9b8df6b8a010970e9d1b8bb277 5c6778e4442883ca59bdf03cb461d99aa96d0c2e9c5ab8fda01ff02d699572f3 f0d0462c1096b28ad64fa3e3803f0fab3202f6910fe0fcd34a8ffb37451581b1 9d7e0c043a160f846cf03588595b1f159eb62b1b48ad2cef48ceb3cec9664ac6 fcdd3d1624ddfef593d9e247e2e96bc6fec5fa8742ffb38dfc86059b1d689dbe 30593c6e3b435afa2f04dc45af2c806bd9c7e358eaa6383b0f2242c1185f335d 4f137a53bdce74114968637d1fd47b63e5ff0d90ca15bbe72cef12d5e30788c5 7623efda6125d5351a31df52be93e349eab72d7ceb9497ffe8e437733c96a4ca 4e90aa32bbf7523c756ceeef927cd4da6ab263468ddb353afee5eb72beb68c86 d602523f6274a31f29ef2494a98f7ff8eced0e921998d9ee4701f4cc99da3a78 a312553bcdac78d308e3343dd92d46b71df03d7d008ca49fb778e827bfbda9ad 1c98bccda24abee911a14cfb4b80d31acfe06078d11cd31f6f59cbfcee137fca 9574e514944b531565b674e41d6d5e007e2d155e3e97542d3c4b58e3a3f6644c 88b70a71cca24e75e7a11b9d2c098334e94ee0c505430f742a4140ac9f45c7c7 9082ca1b0f34854b70184ea713cb59ca7796c0f2b3844869f0bdce5204c4e0f4 26e4750a3e6e269afe956ad01c425d3003473fe49795ef2f5d35847acfd36e3d 0c1b94e797af6dbb0d738a2317222d9341bdbfdc76e0309bb6bf07917ce76a06 f7adb7e6e6eff185474df8035e09ad9007a1eea403945afb29e328de93102c9f 7344f676706edb94842a0d7d62a195957761ec49abb090cba0186a5e17087233 ec6507ebbe94bde19b9e7f1036543919afd1be8caa8e573d6447d18f3b4afdb3 eb6eeb713e7b9c5d1d80a18bb3b726d89453a4af8b445d3375cf09e21780c481 ceb5aac9c65eb9a5d06127a0e0475fc122306b937ce7955a9649496ed9123259 ecfc20e3636a409df04737767e4b31ae58a08d64dfa046ee321b8755e022b651 cc2f45dbb32dd061fd23920e8ac45c5facf4655b8c4ec5deb55cec48cd40d398 97c0d69a45bd4ac2b158ee025fb2780bbabf296a65e6dd2e584e23899c6313ff 776a14a15d29e7405d6035ee139fccb41dad712fd0cd26fa104092f4f520ed1a 3b65c4b2b47540912a998e0c939e770c64d840d8e15c760c96fb764972f179b5 cfb9028786924b7eb4d3d44a5741d1050ca15f5280b5ced213753a41248b0687 0626a1a9fe4abd74c8308dc20f6c0fbad40eb90ab4dddda650c7f2afc702ea86 cd4a89f04cc77059c3ecfca807bfbde7d29212273e82e7d523569369f9878e10 215970be78ecfa6f2c250bcf4ef46587eb4d0e54f240623637d465fdb81c999c 717b933bcc392d104f346a48018019b9378c05279993a2a48f207ea1ee04bc9b 487c3e348f9deb51f4a940ef98b19c47401219d9ce72ab4e48b91676da4ce3f4 fe8fd67b58909960de21154e983d2d3c5685e35567db9ffda6d6178444ee0e2e 6b45d0d6d6c3e4b486c231a8aaa398f8ed498bfb27413a2fd66009d76a1baf41 41e3566a7a8f0bbfb5bfbf8fd6afeb46dae40129c77183be88ea17dd63314db7 ff7b7a88127ad654ce76ac14c9903eddb88c1b5c69ba2abf847232bafa268602 847eae23a04d79f63b3d06a3688fbd53d60a175b0a99be0846f0f18c865513bc 621c107d39c08a6214ce2f9513651d4fd80ede13e807938c7429999eb6912936 d5f71e85226d0092b94eb9f112dd15e24caa8b3baef84a667619e1c4bcb27590 114dbb154eff1d79c1eebfd7813c84df7ff099a4905badb7baaa5fc3ef106188 0a63022672637b0ebfeb2e67cab54d0972060c5ec6d7de6bc7e936be8275b6e2 36cc7e07db230622d69d8a777b093aff67d52d5800565bda3c884f8cbc003789 dbc268c559accbfcf21d2ab7eb165091d3a4b0a09b6f08892b12921bec81e803 1fc618a5274b0a37f05b703c88c79b74bf2aaf6b872f918e61330f192759a5d4 91dd65fb73a3f690fd9be1486e5f8adc3d136ea5f8935bb37579fc3ece34add5 93f46fa20bcdc88c1f7554b59a37acede8b319e921b308e7c77c39b2a45e1a48 cffe9f8bb82c79247da3055c85bf5fc4dff664035e6f733a6698fb0dfabd43c1 7f81ee5f4115db3698973071d9d05961b5f0a6a546da87323dfddd1b90ddfcea 2acdbd80b512f7827fd8fc16f7f040858ac20152370119ed2460aa4a05988d5d 85e3fd17ae35f27b7e7f82691c6f0b79872a54d1f0a336efa23f1d67f9fd22a5 abe4d09c0ee00ba19a50b0ca608a180abf0be0ff9dd11ad30e4571d17b6de643 c3b293bbc08c7a252d3ed060813135177c55c9588e8eb73325647019ca6f997e 5f5efcd5960ab0a1405610d3e1150577f161458ca72635a54bb98a018d29a7eb 0a36ced18cf3c023e3624ba891d83d59300e17ebd0e09e6790bb15c5cb9805b5 53ac79628562c274bd1ed96d0ac43c57d73980b71da9cff88cfa10a67ecb524a 9958956b01af5e7d6469a5060b43fd43766c0f6a059c790a07e4eac52b863c3e 9a38c235064b5c7d2e03fd08618da16ec24ddbf18e8ff3504b86b7aa6745c15c 9b4eba3c8a928263d9d465c843673f439b17bcadc935513b211f4b902785887e b9bd176a0306037495171bff4f6715c73f5c8dc0322c9dc49e5d9000e546b48a 0e8dbe8c1799a94f5764c93ed7a17d606ce17e8bd8466688e8cdfcf8395f755a c8ff6d73e27ce7fd2d9f69ada813e9aac7df83c22bf3548d3fd898252aa4e28e 75450128b0f1757dd6c98cb9b2e9b3c649cb9ec798a3bed9409d643fa0aa9de9 912f5ab8e4ea62c7d8b61e293ceada5eb18601b42758d8c9580be1dd395b36cf eaf0c3dcbb092f2d21d4ba9edda162d9a7caf2a9b3a3a534b124242ce9d3fa5c 1e56a143e8fa6a7d654e64464f7bb534f9b4fc02b3ae73974d1d20d0b126184a 7cff66f0075aa8141ed593e860e61e81cd010e6928a60a4255d70b469761eaec 180c8b99944a6c4617b575de1b7c804d6a68e84a66cf6a1d8071d95601baf28b 1931c8d8cea775dd110726d1d530dba6e23ddb38417fbfd0e03edac60e894f17 0017532174b5e40ea3035bc3a892cc369a7074bb9b7ca54ebeaf1307255bce79 010c3ecc60928556d320cd4cbeb364ea2c03a6b2e4c61617dd39d42e153a9b69 e729cf1cac5e7dc54e25c43412fcd26e08e23fc0b727464926a85315f060cfb4 14fd19b1105edad76de994422adf6b1360d989f6d865717f31fe94687b62fa1d 63c033cc68818ab85c58bed0f979ecd2f860b616119c9476638224fb4338d943 79f50d7c14a5ac85cdbfe297265a2730234429eaf019c5462616e6d65ab168f2 c0aaf85c429aca1cb02d79ea87502f32bef1a6d1a95a7d28014428b5fdd4b58b 6ca07b2be57c5895bfe96677064182ffb9ef8631b536023d03fae810d78ef164 147280a15b7ebada9fa50835d1f437f56e60397597b52a00b6d9d17f70208fc9 13e315deb003e8258e2690f73d9d498fae690e350e1036501e28f2f5dc8d536f a415a3430b57d087c803c5637367847067d6e814da0594f41b2cc6885bfbe38d 168b202679793b7d54fc3399585b1827b3bf10fd65060f68db1c488b8468059e 311ce579b554d5f1d8374308bd4c2a74a7afc8dac42aff245dc8da88b316d720 63035e5c8c05be1fd56c242f6eedbbe56ade23d52a7a6a919aadd984852f2fe3 68c57273f7748c09370bf7db6a3f1a9c950775fa50564f1b197a5827bf0ddfc1 2587fe0a6fa8170a59bc6f5cae75c556b508dbd3947e4ba2c92f0163e5b07357 7ab3bc9d56e2342dc87f82ccf03a0387095dd9c1910774781abb2d350c0ae1f0 3dfed648d84a0b5096b5c94587733d6ca14fe42b0b9ed1affade530973bdddba f29df15af1af10170328be874e6d33ccfb9942bb2235286d17eb1283274cecb6 60878326801112569fffb6f53571e74e93e8b80901fe4e2d527f85feaa1dc0f7 e5669627cfbe7077ab2f20f576bd8bee10cc0a6d408f62e62e3ea1e8853acaf0 4605393ee33480dacb56dbb6b08cba163505f88e728debab77a80634120ca609 73437b7f9babe53d4b2f0b8009f00fcbb1ba237797cada96ddef819c3e4b4b56 71b59ae73daa20940619c16f9ce0fb7d69f7f8ceec26ce6258ef0cb092eee0fd 9f90af2290ee537fbfeac237fb3816d795eb9b616b71ab2ccd0bde462c9a1745 ad02a077eb24b74e1aa923ec164f7698c691b207798021745b2d7a69cd593b29 be6b17902eb3dfc2b55e8a083e109d519aad8625353ccc397f846959fd33019a 1c8a664044195b01e31754adebd20d8df0c73bb7b5d12bb5ca21cece2a22f479 00e9c0b94849e30facfd54812665ebb4996b6229d1075a5e8e 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 16 /dotlessi put dup 34 /quotedblright put dup 36 /dollar put dup 37 /percent put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put dup 126 /tilde put dup 127 /dieresis put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueXX 5000792 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609 dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9 aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9 39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891 d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893 d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626 b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824 5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d 264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23 516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2 2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218 63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04 6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1 dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec 9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384 a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3 2f35f7bbc9aa50135f30223360fa2fbf019294b2e1d1405e078341097090ddba 1561f22f8738fe105c0e3b84532bed145d51428c9cb1807e655408807dc69161 1109a98af82680d6dccc987cb312835dec4ea0645f47a15b6707d654ae54846b 3d3301d61150fdea8ae2da33e79976812c7764050a3e86a2a819ffd3c64c38ec 16b2d0bec3922847fde375ffdd82f8f8bcdfa39c53068da393b35277ba7af682 9e48b1607f22eeefd7d0eea93ba1e2fb9b5ecc6c6fe1075db980999f0be7ac27 298b3c19530c7546a0c1d19509c200db969859420bb0b1f4022f452d67c47387 ef11c38f24cd7c2e9a6ea7add37138c116561dbde5438a1cf3f5b23899876325 ca4dd38c7be03c51c0f7779b4b93890c87ee07476853a9218f9c368ba0908098 ec11d4189ed9aeda3a17ba8abf526b5c5fe6741e618b658b32064c22003a0217 b858beacfd75fc429fb40412176f3b72fb4de2387f10b6eaae3327fc49f0b72b a598234b49abde06083fbc62c560198e56e03098e3e93744119d045c64caa68e f6bd7289f3212bab19160e18a4ebf55c1feff9fce1685f900e97cf74ebb2cd4f 5b95e95681c76963afc632ee36c542f79ffd2f6d665f8bd8677e1c9b63ee894e 87de7c3924a79f8458a41ba4e614c1ac87e11899f4f837b0bc92bfa307a86add f63465f3e113ef080bee22e2ca572ec80db1e7dbc90b3e1de970a978c0bc3175 0163daae52a48e61cdb3b2f4bce9ee5d4cdc08239fd04ede8700fb4cf406560f 46e5d2f7b84cccf6bf8f8f55a0fbb2b1e442e6714589bb2a5dd3b17d0509a5d6 58c6ed4dfda49233a87137509cdc11cdbef3e63b02666b86e984a7699f440f9c 21df015bb600c204363ac7a5710959799fae4d8e2386af03ebe34995d8130673 8b1b910f473461d3ccb78805fcec724fb48c532e7dde29ba19eaf3bc91f6d812 70555e2ccc1dd140441ee2aa057555351a542ae9c37ba97740df0bb85ef23a79 e97bc71ea58f5219256beae88f4e3ec8ed20dfb031b00a0e2b7a79528230be28 41ea60a3ece3edac8339da7a764f2ab52133a5884ed99790c0db6888ad12e9cc 1a269418219858ba8122603ea97f376ee1ff2c37dfa2f057ffd53e70f518ad8c b406d424fc7ecb6aeb8f4ccfb25bbddc659d73cdbed524f653c83faec8ef2fc8 27da2086a28dacdf31521aa0b39d48f648ca8bcd3cb5cfecd2cc4c2dd14a0b49 b25748c4bf1ceb5040a7318a93233714019572fd2e70e8528bf771dda8a2dbef b08c68d0f11d622399b3c76356161a40a221839a9469151525660781fa30576f a17c70b7ec222e0d2a5897cc0e1d720a5ff85b879b2e0e6b075fbe42a7ec8d60 363863d3d6f64a698a2b949eb9557f70f7e0c5c26efa4630523a1c9563ce4b72 b33248b8f45fc20656fc2cd5770aaa76d5115d3b456478cd22d91129638de353 af6026bce8ce9fe0411a0a0d6bd1e6136528b88d5dd996e4f646cd26afc2ce32 adb476d6ae620edbec54fb29c4c09c61f8baac9b769122c1b16016d5a2db06db a09662e63ea42f0822bd67894d0c8ae85fae4c6d8a0bd380a27bb897c5bf3ee0 b6d856f792d92a26d6caa72b24f8f37c6e770d71148616cd3a3b56a7091c5cdf aaab8dce117bbe4daa951b38b57d5d456dbb4bf4f39d8d1fe65581f06bcc8b12 3ecd55a0becd347402ea14a9a78afa1740311d3ba99753d318370688b6dab459 4dd46ba7c4dac4013b62c5f0b7bd3a8d42812a923a4b004cb97674aa247c76a7 9febae330dee6a3df7e73fd38729d63df5f362796a3ee3032042417eae3f5a48 48e43d89415ca5ba26b998afc52f9caa3dfce245955dbae63f36cb2569f49b05 7a09a1c0b362676eb6d83f6beaaf91835c31270e0d0e92e50cb10832e5a952ff 23dd4e241b9d058e235ff9cadae56f535110fd1ab492528398dff39ec737b908 04352e4c128d32595403c96332cf8d84ff580e05f7622dd4c350c8ae87dc1982 13249905c7f0d79fb99f67272d8d815e5f6f69b1c17702105ad7baabd3967c70 b9673cb2e8f8297a6f269b8a89d711b2ae141ced4ee5fc05a817a307249aaa87 bcfd1ba2a524d3ed5b45fa7d9aa3999f8778c3c33dc86ffab5e0520f91c0a74f aba78b11fd38c296a1e31ea0432f94ceffa1b927021d40bea04c01c376b2d378 92970a1966c4f5e1a9c6f3eff952ac7c7b0aca0d67ed79fd58b0b158b11afb83 e0077e4dd4720cb92bdde95674cc6733c59b2fdbfbb5442d0a4cd2dff95c3f5b f92ba785bfc70b670cebdf6295af8a70ecdf1f8c9434a4df0dc3181ff0995d2a 82095d397821b333dd03dcf8558c66a2c228a6ac3c53c8efd5e9272b785d636c 446a203138b5104329860079e0f6640f4856f64db82f4841143ad578bebc0b6e 50bce6ef6a9831457891a23ec8a5a72b82de6e0e062aa42b0583087f60b2a387 8297bf933b27a5bbf37e2ae53805ea6dda6a166a968e9e6cb0ff6d70fdc197ca 2fbacb7678d33c6606025b3c945f5f860ce2cf592d666e9cb8e4876f0fc06ba6 e6c9b204703d866a36d98ba193f1a5acaa8ad79177c73697fa5836303878f666 ee00b7eacfcc680d410373e1973c2e56c5c0e1905f29ca644498956ac2a3a782 259c8f55327fa10ff8027303675161d100ad3c4ac28c902dbae47c934410f7ec b536f0c8c0407c60f67001aebc04904e1c8bafde3117d35e35adf40920f1d4b3 8e72767bd487daf3de2faf26a9983dddb6490c5c3d15ccad7035074797371976 c59fa085ef19b0fdf024c20c1cb7dbaef8ec789e02c24605c69bfe61bf3e9abf 6c1d0286af5fd9c9935e3eca132eff53129efb4589d3329d6d778a8864770618 c2e0583f3510ee649a8bf10cfefdd8d4954a8e5eef194b0b60d93e254d7b0456 5fbd187a14ab2d59d840257773ee096ef52f1441ba368f38433adeb6bbcaf912 f9148df66f01d20c004de30084ff67b88d18c42e29336f751478e95ba2e25c77 7345be0e082c70dd80a19a546db106b6dc3f379865e58639744ec0b85717a43c e742f2cb84612eda75a86d96dbdefaf2040169e8e781f115321b611b6e077c48 0e4fd1979b71c9fb82cc9a07f3c0c1cbba36d1f0bbb49cce64415d09121f2edc 6e608068c7c66086e55470ab10d21ec2e8b93c32127740f2903284365afaa22b 5f4fbd32170ca6ce265a0e2994a5edc25e23692b7186f50581034f4792df9eb7 bd8192c51d100346851a9860d12bb81ff0281bd3cd4b57e2a0fdbf0215138c90 4f94fa8140d7d79c51c680a7322a3db55b8e96729be47a53125ae87a7b68c040 6d7109eb75b6e7f7cd23976e641baf71315f0c47d46c2aa4374f6ba66d496129 692af11fdc3fd50a9d78f4830e242d438e2e8cf609f7ce6e4bf0ef74c80af24e d2af06bf07459704f10886f552275d93e2848b5c1b1155d6d8b243447977275e 2fcbf49d3518c3e4e681fee138bb0593e587fbf41897956c691d40b9d23d956f 91e9d8bb5325774469713f7d504d73a721210b1b830287ed1a12c316148dfd33 fe743f9b345b4d9eb44aec21b8f767fcfb0ce876875f43b114f1ca085e0684d5 7b4c3f19b474ae65a0df4cdc93659c419ee9cf0ede83f300fd42f0c822496039 15d3d22e5854151fba938a80f930a57c9c22fd1b1b33f41a813c29d09a071259 e0b52578bb646dab1a479e8d4373f1d7c0b0863fdafca65f35b1a4ab1586c45e 04d828425d6bab5402ff92944fea6b48310ad35872acc92822d5115bf34e13e2 36bea5bda4c3ee5e2112350b30efb6ad506b39a78ffd120c20cd21b2c14224ce acc0b5b5b08017981d4f3fab538e8661102851367c566c3a1cfdbe5e96de7f52 8d01127347e74179dd3b8d049d26531da979c068d1e7647f3e3b8e5ea7880463 08f94732cca6faa28e58eedeb00a6df5dae4b139fefbbb45f48520f85e974ff9 227a831abea5ff94c88a70331cbbaed82110f06c4524df2526271697afe845d9 c47bd021ba0b3b5606c6ff7f81e991173838284d26960b728fca0fc113896fdd d9307a94bc3bfaa9df4967f2f058501a912d811cd343db123b163380e798170d 55c92744550a926b48c602876ebd0ca6cbc27f1527a286b71cb3adf6463e3d4a 19b528e721cd2ada71db4bb388e39e8ce825327029154f4ecdeb210a9bdb8b3e 755f2ec5113ca392754b4b81e26f7848a2605ae838e86140b865e9e8c5f11ab8 01446aa8e52b166c9c25d5684eeabf5e7afdc732e9cb6b756f4b3a7d92d7b915 1ea643e73ee24b93c73ff14dbeed8dc17401eea3ec8b1b9268efbe207d920f9f 5fd3b557ea534ccdf8a1d674398ab5641e8645c9e324ad6c40a0bf1fa56c33fc 974d46ee80cd23c2c81d6c938f76b3117381a55e9e207bdedacb2bb84c927bc9 b15f43b0e5614b2c9d8a151d08ab057271687addd23c32ca561b4f8150d934f2 0fe69d3c44d8cc1fc85981aa19450d8aebdb812d6a8962c7448e49f60b1e35d2 17ff5500158cb70a946cdf154274bf8f6c497309ee5f6d45a811c3522f648690 ab7bca4a8bed005d7de35f1fbe53f3de57a00eccd208bf157698dbe5c180a69c a986ee8dcff0509aa8f04325353f820d05ad0b5ae22412944f329d1e40cf9859 41665efcb7ec54ce18861e57588206ebaea2578a4d4e43a7ec2f59b9463c41e4 d4b731361bdda4f8124b1246293c448024e24746a9567663355f65bfcfe15e2b 10c2826d563fe04da907d0162dff20c13f3b5307efda012a6482d643a67fa285 7b97a575777bdd75e97825285f2ae7a004794b05540eb451daa056200f4f68c5 4b3b50d4b2f45b828a433fa5a581717f5faba45d06635519686a42eefec24472 004b14d0016e5a0f211191327632bb9cb876511f94a12c10ef2c7ac79241501a 5cf3f22543a38945940ed6cc4a3ea1fd450ea15d21f207bd326133c75f83331c 4b7e58fc202ee3a1066665da62098a6f954f4cd1931f6d944e31b05ee3d3b9c9 69817cb810782a94f3482bea418e3c48d1855764fea7d8dfa2dc6e9d13a59bc1 780775297773098a6a964626b73ed5a17e705ead953922ceeeb31f9b019836ce c12f8f87d9baf4ddbc69c78b0ea39a18ce1fabdf24503b5132cac7e69366e21d 52b49d246afc87da61567d3c314d9e6b2f314cd480626b09e38e6db80c0f9236 0f88e4d0e883c262a46c7df42239266394a6df883e140d2e02b39a2136c165e2 4f023b942c34b998c425a17c80c419e37ded0751a0b9a8fc296416e9df2db1a9 8099590072fd3469749d5dda852822ca19c704550088e6cfb8242ef695522ab9 67d0fecb601f192c69c4b1f17adba4f2dc6eb0e766191356c42db6a316042a7c 3468c2afda7d0b86ef95884d1d46c2fd254b5f0eee33342e95673d4968c8a093 ade0d474cdc22bd99c80a31db3b5735d31636b0d0e35bee3d6a18e3522c61ec1 eb9e31a785a38bd8003a21d1a3e01d922a12397419c06963ae07cfbe68a95ea9 37792039db7510fab8d7b49e3aeed5ed80a99740a6f0f1f3df1b89441ccd5832 84220a3743e94e1da9d73f8645141e7a49d541146db18c65b575c006d2d1787a 46987d8393bf09e2fdb4aa77faeebd0afd73a8c6b454fc7d278acd364386e5b1 912ff8c714a0b598471f020719fa1f2b83c057d9487df1713ca29b24b6b16f92 d26a66b4782684b6f344f9a2b3c4887e5e4f0972adc65171a72c38744fb745d3 283a7d23598c361b5cf7e8df17a52a09695b1b66062110d617e72ef361eee0d1 26978116010d3fb8cd678da02d5488e566af680987e31072942eef4c19b9db2d 84ade98d1e18b56f492b048dfd5bba336cbac753cdc96d21f7f688dd7e95f656 dcca5ff790ed3b7833e14964bf815d16330688eff2f613944eb705b9dea5d464 a41d65425ee35cb76fd5793b6ebd4a0826b2760fe9762bdc870b722c61cefba9 dca5449a2880a0e792225a57d53269e2c72007343988784092627d9a969629c0 0974bef5c8176eedeadd25208700490462ba8fd68e98ace7116bde88d1a66f5b a6dd67ef027685a51948ff126a4e8ace0d1b9160fd271971b5e764e98d1c41a5 d13fd535ea8dbbec4c32d15c3200ef317f1bea680d43afc2a9a90dd2499034e4 81b4ee9a53b51a7b1ebab722804d6c4d1b16b34ff573c455fb6e272e3dee4cc6 801c147321068344ba063b8119e84bece295c16d19e951a1dd18fbbcb1f76367 ea15504208643fbb70ac55a5ecbdc1bb5e0d0241060b9f2ea39c00de49573141 88d503263c2a80e1ee9d65d0c761085c2cc13f180048f2b983418bcc426249f9 e9b1a6e120c0ae4e1be3476d4913183b062cc9aba13007bebb9f292a540546a0 148ca1baac6a3fc786ec7cd8a4b280bc7d480f677e1570c543dbff56b9c8306b a6e9932ee8b5585b3b00560e6b4d9315203d144dd7e25b2ef55e87f456894683 132f6138f721eabe8c9d476fe82774a35fb59e861cf365dd8af0e241d7e544e8 4332421fc71c6d11a844c68a2476c83f813983000793db61b69c0c7d815d47db 76304df2d3395007165ba8ec6b69854198ab8c44d24ea7e844ea3920e0cdbc99 2025718f1fcd189bd356b38a9117c2a655a9e07346024fb99c8f613faef9f749 ba48f3ff93bd581326879cc0f251a113fd55322842caf9e99dba7bc807004604 4976a2e6bc44ead51d57981c04bd850bff44fb97ef3d8a427fb7a9e011278776 3fd8d160f207bbc2ee9435096e1eba9499bb359016181fe76b7b541f37cac196 8aca2a3e378af8266b48d511839a3868752a0048a9a5c26cb023786e40f4e3e0 9a590ab8ec3a8cc25fb26f26e103ef3da1f55354fce528a17d7347f734539e5c b49cf37f80634b8c4d138a985bb37912b923286c2edc84a614c7786a0ce0dbf9 64d36a60ff65362983e0bd9cf4f889d3d19246a3af297a6c2b0ce0f53224af6d e2f8a4b6f03815f614095b8e340ddaf96773d29b33810b157fb6a7edd5763961 23a4bc19699af97ad2402a1301dd8bddc23a8931beab6d4249387fb3f6942300 c4b863aed40daf84719b6d6392b8f720bb44305404f8992148ebf47b1c019ef6 33fc9c15398dc8ae63355b4e0743cfa33631e1154e5f3c08ec7573579ce5cfeb 529b335f1ef064cc9145e4552e04c3ae97cd1274aab30d6edbd9259e28624955 95d999e260c0191fc2b3c66f3c27b4ee3ce96e120f61a2283f9ce546b89c1fb4 5efcdf2a06fcb06e5b2993b6f67939559610c5707a2b5f579474f6d4ceb502d4 fa3b2f1676b82881771e446f0055eacb28312822d8575fc44dabba6b6df95bd2 2934901e4c6ed90d62227873fb00fe153495dc875c7deee4c2142bcef554284c 010f9f28d714837da6f71173b908696c9727c81d70034139f07caeba57912740 e10674c9557477afc33b4f33153e293fb414154d0b1b043a65659593ff9db032 4d4041c88372ae883884d0bac4fc37aa8ced5db60cd854301e5f8c271906839c 53f6899e666b66761042bdf4405fac78eb1451ccced1d8586a5da7640e177b25 d42444a915a4aab4cd3b146de44326f9293a75344168f7c7f201215183cdcb97 ba135d9f00d5aea8916b718508946b83a59fa5a7c1ba3fd8bf5d59bb4ef8f8cd 2a8b9d649e9b160a2349165b7a1eb68c15b1d3f018da39d5329d7faec1f640df 3153f548ed1f7c95b466b241fd9ad77ef296bf6d68462a71d6e9a749b196e811 2f902105c7fc0e1d0bad6cf3b54ef7996c6e3432e00d94f2dd9512ded87f13bf d806bf2ece8a8562ce6462ed11159c9b5e62ae16308e8af45ed384d62c76e42c 7c42fabad09042855095e680acaa0f1826065f6357721d0f6d8c301dc7c8e362 d2221468e811e012fc1e8a58d447a7b439c4623e891e1181729855aa61a10b6c 1ceeff07e3a22b3d5c3dca84e5d40f16edb1e0b403ece78161a39b9f663ed67f c4728a5b42b1ab1fb9e6b5cdc2188af4afa0eaa0f81f49177fa25e0b3a5680f6 7caa7127cd07eedb1b59337ef9fc18e86b5ebb7ddde002210f71f042cc8fdc1e be61f676b8410ddbe591fd4b7ee1dc0162e6b3bb5b13d910156fdcd7f856aaf7 3987b7ae0c0c8e317f27166cff2a711e35732f952d79e13599ae1838c2d4f2f8 36ab4fec589351bdd637a4ecf6995ff593c2e7051380b28faaf8f77a34d82f8e 38d91b8257b584174616551ab93f5ca07ced901980cfc1b1065949011e36852a 6040d52cd65abdb3ce266ac4ec267fb53dee6637d4783cd69d91088cc75bd371 f2811d33a121909bebd85487b1bc9465a8bd06caa6d95785a23adcb31f7b23a4 abda0610742836c25ce69f73c8c58588f6378c0eab3689035a051c964b70dad1 3f9f2850fb598a96ec6021db2c4811d7f375a88ba5cbb5405982ad3190e1b2b9 377483fc8e448e048804b0a32efd5b5201da6b59b498248da8b07b8394e5ca37 ff9d2876005013710ff1a70e2db2d716b7283382478bd1587b8192e3b129b741 0f8de63f1a1d3fadd6a7215e324b9137f896e07471cf77f35e91ef6c45db736c fb5f68502b251bafffd982d24116467cdf8d1ffd901e3e61b321907bd19e4b06 d9ed74d2f6895b3aff6c8d1c97a2ae33a6b108259482b7f57b882893693cecc2 8d28a987ac55fb0ed691d8425620b37c7da6b3b5b10270c5f05dbe656a24abf4 84a1be5e5363bc57facfd1774f8edc74da9d4d53e5fc572bab595a407eefd292 cdd8c15cd208b2eac51c1d624769091cd00f781a86b3d7c2b4a3dfb4c23a2d46 c21b770da7aacbe7e22c066d2994528f4420c41daf71a7bd1aa681f172450c33 544ad393dd4d9228fe7d167b0d81c882b70e429d0babb1b4e46110479a8ebb7b 2db9325582c854519237cd99a00df77b456d581763c920374a42666a185e14c5 e140ec75b53ea255338320400917ffbbbf716b288d7c64fba2d412396f944a65 77aa0e1ee83dc4d9552004c70b1f247328767ea32222737e45bf82c5e81d747a b71014d96e202697c5d2d193b3e141ebb47eda3d16dcb2a39b427da69f77b052 3aef77d05efdb2027dc83f422b4557dca657285eb915b82da064271296990c07 caa531afd710271e88f8d31413247d57fe8227aafcf924be4ad5ab745709a2ff e11cf5cd939e3c2518880cc700a47da363c6373fcf4156e494f5417c3932db38 3e4b072c202cdecb3b892c7dbd91e236e14fa5bd186839f918203ba99e0e7b61 417ba606fd2e13b0a0869044b4cffbd9ded1dbfdaf541d0276690bf84b9e7b9f bb332477dca3bb71b68c7f309deea76ca7e8231082624f82ab7aaa4ffa696b83 3476211c833da0947be88362721e5e16aa069254872d7f1cf370c941b54d02fe 1843e7a8e3e22377f3002f11dfd69b29ac2fdba4ae5d5818c2292f963ffcdc17 9ca331081746b60e66a6b5b0ec9f43ab482d2dd49e88aec57937441822cfb661 8d215143da3a84c0ea98e51c5bb6cb1dc80ea0ac56ed5bd2467a1fd8f7a5173b 3bda559f596998002011b9ea935be0e11a12907ba61f2fd412297506c0e0e21d e58424c9d1a32ee5d7a5e844fa220a3bdfd467cf3e400bd6f2c191200a6415e8 aa87ee5c17884b93bdeede9d6cd201b58945ee397b71f6c96ca2ad149abe17ef aab723c30a892b358a20150d284ce0824ab363a7677bc095b74dee7cb1f036e1 d1b75851d7faa4f540fa8a690ed57c6e5b1ebce82aaf0b125f7d329c60c96e2d 7ac3e2dc689663ca3b1f7d3811b6f5870a8a09d6dfcd7207ee87c0204112361d ff5a1ebd27de9015f74a2896dad716a58bfc923a0cb5b8f572f42d366a7c5c7b 0f784982871bd1d53aec4929ce4b800cdcf14ad3e47a66164e291fa2bc5c28a1 470acd8c561886f6f0d4e3e8667eec99bc87214793e355c02d1526da7cd721df 79722287dc175b47c820cd212706948f2c1605cc6347d12c7f024e7386871d9b d681d13d73916ebbfc551c081334b546581041dd5bf260c2472a738889e8de41 00496610b540ce61fad9b7c751b612a106918faf76720ced0de8b9f7f0500293 50cf3e2af15623f8b5fd4b3bcc3ab5501ab485ef88bbe9a6e3c219509209c1a2 609440aaa320c6dd42307fc130b204dd51cefeffdf9c4632f4a2f98cfa10a67e ae1328a499eed453b593c40e928c611a99ab29098533b6ba66b71b024bb9c61d c89594c77d452db613308d4377530550d55edc4a5e9ebe898524b4e6133b49cb 9bfca03c40151bed7420d5d0de6ff02ff28551e86dda687352f703d79c881f8b 63f202d20fa3b8afd3eab0721c95638ce72260b3fa6effd268cf1ff73b04fd72 df1c1118a934353a5d1569ecf37c5a868789420cd91bff67b036ef7ab52346b4 0ba067f02b61794a7e76ea2761be88fb6dd3f0b7cf1897fc635970090a5566aa f44314d4d8d658f4dd8ee9ecab75371aed26f3d96600ce55cf9f9264e76ede02 8420c6db130cf12f86ea0816865692578726c82f218f5a013bb6d770b5fa73d7 8752f43e0f3766ced938ad419dd7ced9e3997021a299c6d5de9c13663d597526 0a218ec839688287605b0a26185344a1e55f5e99dc3ed33a0e845fee7e182355 8597d4778efd0baa9f5aff6ffee184e3ff92329de7f65a2423607bc3ff0d5e74 bb4c6a8807353d47ee23b3a1ca67c776a067fa507a326add689f91ef4bc77591 5119954d243402628baa1b4929ed4da1493cffd0b6cb33b565ddf42d1fb8c05e 1f85b8c785e2846381b3f3225f9a12e98c4cb0cecde5fbbf790a248d0327ee8c 25a8728140ae9628190f0df09cc3c0ebf87b83367aa2ee914ff440c8282c4652 c2b50c9e809f42a635493e9e5d4dd7098e2fd20969fdd1f3810821a9b957cf08 84c533d0149e4501d3e12eacecb8c367d9cc72fd2457042d943dd7517ac345ca a97df75536f3a868883f98fe4820d47078a5f8f183077926e728513e17f0e36f 2d003620b294acbcc099eeb678b9b3ed4f4d6dd9f0b5500aa791db4fbc400775 8151aedea5b046467e6af54696786b7bdb6b03986b085b5451778e287cd7bbec 6de4830c0726e28859f48fe91031d0e1d1d002478e05e98ae09c7760a729e66b 1bda89d5d095ea5e145e6c572676357dcb18a551da94aeb93eb611876ad9eefa f416182c44244011361a107af024ee9856d3d83a603282e51c25984cc5f18f96 291e59311909af16b9a74eac59ebd7c7f91e6dfd766ad37aa0dfb60475968768 937766254a7ff9b2ff47b27844dbd54a2f316e710cc7d3f2100afd167776248e 7748941ec97e18e8bd928bb35c87d3ef26c131c73f7582a11aa423f9c75f6398 87ba389c98633cb942e93e738ac241a6c9e9332dd16af116f69919c6b60a9e40 5b2912b865841b8eee091650f58aab8ba4b4be1be1f92ac49d9c2bf376a1676b 1c6b22b86d9e178174248fa1394cb21230a0ded0475e016cb4cf23b67d4e6057 0a061296919e4947a0256076e79f1ae2edc4366c459327e4acf45c9615e3c1ae 1a5354a998e23d7ce138eed9509e8687651a043c51245ca900928753ead913f2 59decce2251d21f3c9385db5c35ad32a0591214fd3dec8d8fc203b21a5dcdc0a 46a00c35a79610257553092910ab1cb28365040f2949378e361cdb62e8e76fea c107ec48dc7d021cbaa6284d3f356f79b804c8ae349c0fd0577a155a28cb4d30 888fe065a6f5c3f3287f737be4e0fe604b69e24a0a7259a407cf3f6c880b07e6 01d0abe41757851300ddf6da817f137412d32ce7426b02a324612b927ecc2f1a 75ffb6a7534ac619f985c210d75ca1fec30a14f787977e688632e2d12442f551 203dc3615724ded31ab1ac2af8ec4160e728dbd380025dc6e0e7bb7269a219d8 e4130d1bcec539c75adb5182736da2495809c273e4052a9e882e98b97e5f2ed5 ed64c1910d80655d017eff8d0e2910fe3b0914bba0cb6a09dc37b06ca3693b97 bd6f5e2948457a8c47f9480396ef72e7d1f183f5cc9713bfcd209e6c4cb81d97 64ca943b034d8e1a5144044e1aaf3c28ac2ddf8914d1a083d5d0418acf77bf8b b2b61fe395c7ec94326cc345d0ce68195ded640c7755df960bff2108b3a63692 3767c8ad6ed91c2bd14b2f910e1a24c18968a9552476215329ba05838438ef4c 57e47b7d404a74489d44b80d164a6310e737a9dee428fec8430dbe84c0e61080 5a8a8727853c896a250c79b7ed1abff71310f6cd97c4fc3bed02fab7caaa8663 7170737ee57028488fa0cba092f9261f106358969c4e8f9e4089a1e03433cdcc bdba483ccebdad588a47687ca077adc242759c334d28b70226a016dc1402fcec 118cf8776675c096d591702ac9a19b2f5ce711d3f60b1105b881ff295a59772b 4610222608ff1c7982169c3d48521ed1da7c4a97da028df836827c8540ed4026 eae57b99fb936d0d058d40edee6d22e433bf57dec0538ac5beaf9496d6bdfd42 5af4f310c3c14008bf66a02a7633d121129c5c2a937732bb6f2029ddde4c4146 d78393f248ff87f725e9698ddd52f3519845f47bb240602ca730d82dbd6ae21c 10b05b9e158eb69e3701e5c47f0a819ed20533481acb9bbd514d1211a0112645 54062420b99da6f31f4c6e92ca75d68c6c93badd01384657a7f159109bda185e 71bf2dff138172d25c811ffe32af43afbcf1f196d27c97f4a9ab9e28a5112fe0 b5ea088b34cc02c005348872de26a491068a117600f24e3d093ae9e307ad48fe 68bdd9ca0c0fc4a65d08074b9d9699bfb5cf3bce51e9c235ce0f8b1d070fc501 b40c2623edbe2561bd2d26e682f74fe33faf512cc411212aac45b1b0fe690544 46bd4913c01cbeef7964a4802500790e01afcdb660d50eb2408409cf862411ea b19b8382c894283ecc94aec92644208a52a4cdd5c37d1070518b59ac53c670be 9313ccbc01a0400756c8fde819d9cddf8cfb1f41962a3859cba3d727197fe0b7 5d99b6511deaa3a2a250dbbe041dab741d3d5c25c73af30a0992d893198a2949 fa689b31228ff8f5d538339119567456f46ea8130fc34d377d8917c5df7fe70c 5407ed5265c2c4c23aa50b95715949c82f0a60bce7254df15911fa7859bb8109 bed360ef1463d795a1dc5f7a3ceb72b39b1279d8b01ae59202b2e57447e7ebae 8edbc7040e23e3868540e20eb435992b2f4128937612bbc801b04906f30a9f1b 7daf17a9d1c4556a6c0a673707e0c5813bac905d1c914a90ab26e9bb3b2d19d5 09f5e11100ad59becf5f135ba203efc8188758c4a19f755e0ba0d1b6215595bf 47e826ef3a4b6dc9852935ffcb604cbfbb89fd72042c55bd22411d8c85d089e9 381ea5cf61c82c202abd6c9f46ed7584bf64935ccb2894d8d27873d0813d0559 5d4c27a58a2d81db3c020a3d9725e189c4ff99604612aac997da938afc6aeeea ac9f3c6a6c2221b07c31f26dc0c4481cd2f40edb6859a48b0da4be5bcdf98806 3cca9d072de5cdfadcfe1d2e8322375f029c004eafab821f9ea3f86723cba44e e7daf05a79a958bfa651a9ec1205a8660538c956b00eb9b7bf73c10bdfb08b81 aee93a07d03ceda6f48c8bc121555337669e78003b98f57a77cf5e7664cd49fc 9eb7c4ed9feae265a488fc9070e4dc36b6b4f01ecaac71fd3bf025b50786386f ed31b56e3acbbf52795c3329fccd16c5ea305bd30506dfabad3b27ec5f2eefc8 df59321e6193f2de82d6c6f6db5b3e379ebdb401e2fef874808017bf0a24e3ce 3f029f3b91e2241dd2e39ee3cd161cd4b6d7c22a726d33accdd1e9b8a487da85 c9a26de9d950876acadd60c426f5ac5008d7604231960c01c2d7b8dbbc4e6cc4 ff2f6be5178b0c2ae0b2a159d7b3bc7c9c5baaece26f3b6b87239064c3fcf3b8 38600e864ab81f96c30b652efd75e66f7078db7ba57bd7272cfa6d2b4f228158 9957cb6f4cdcf8af226ae6e7f5862b133fa1668c37a0da5a9d79b9a833eaf8be f732fd582fdda1871020db538b5a8891323cb6ffca3ac13f37ab105a22ba7e42 02f4e6a12856da923e113d4c65e97211da112552fa2050c8e9d60c38e6406b52 dc4dee5559d3d7d491ee7f50cf0f4d5a6aaf56d334d73ba07c0a9b710309ac49 602075c1cda07c0c7848b8ead22fd1375d9ae5e16cebad892fa6ddd0c850776c 8d5a868d9bb194a3012c901b3935e0d50bcee1eee2634d4569491630371d5018 322c0552a37dba6c3be966608fe3276a15c826a3aa9df9afebfbfa2244ee786b 29e628da0bc729269ccf4cf90f518d9b31dcaf84de2b02fb6b49d6ad56944c0f 15f9c2d783201b75facd85830bf04d107c4e8b04335477c6e77ad75b463551a2 de399a83de6101cc2f3f6f5cbdb7f5f319d874c322d9301ef0a9f0698febfc88 a565115792e9ac8d7c52ae783d730b538a219eb0c4095de6488346181cdfc1f5 5bcbb92d5dc23fd9dbd89e964c01fef76cc89d93466efebec261d046e4f89dca cd4010d8ae681b37d339a13aad8cca62522642fd12151e191f7f0717a6c98a66 bff0331c7209a89eba74620bdea684a447a154924ebb35d8c015f0033de05cf0 76e1b9debc173556df7f99891764580939669d996a1a6ce1db27eced9a8f4d54 d0c749ccc17b5911e36ac9b427f65450437f96bb1d4a103ee0dbaf37a0d0c658 de11eff5751eda69b7065e353522adfca28b4832c910258fa9f84e9741e530b8 0746e9d622e084ec22144735d3e3e29d616d487bff12a768aa8c052e1d381ab2 507f781c6d733f1c1d4ba33e70b9cc05514238e19c6bd79ba4e25cb5f398d010 a50d019b0ad1b4ae19f9f4f87b62592953703661bd18166ec7838c9d46b8d6b4 75519d65ef757d4c33acb3bec0018de1f0bd83a6072a82871425fc3e15f2a240 b416383f835eb2cbefd10bff0815a21919b04feae919bf54c6f90425b553cebd 3e43100c55899fdc07507a2e3ef82aa3321e1dd642baf25ae7362c6e0c30bf8c c63e7316e8dd65822522ee9a9eb6a56c68ec4728a04b25a467ae89c3acacc79e 75337a53bc654904c27c5c13d69944384f99106873611cfd6dd4bd10b4c45de7 d63eb246304c7350f65c6ca7e9f7a41f7c3c26151eb0df144c71c3d452ac65cf 877341d917c9819f1c17bdb73b0bc827b7116c80c7bd9e68d5078338559370bb baf075faf304d266f928d2f88eca228be7361732f633d761610e16dff1f28929 141ae7433e2f1250e7495767cb03d087a05a169142229122149ec0c22a12d340 a908f3064d1feee86e0eaf6f381692130c328b5952e0dacdf7a6e26bf27a9a4a 8513c5926511877d44a357cd83c26ca44b3fd7a23aeea011856d4e18557628c6 83a5213fdd0bfb5f39bc6d123f9f8d345e28dd72fcadbfde5449da107f39c31b 5c8b295d988c35c46fe106e0d0063f1e30c91f858585c0c9b89d8250129863a1 594cc27f82ae34628f83b3f216ab6c7e5f5072faae89fa9962b2912a54e9eb03 5fea0f99719f773a1d4fe03f3c17a8ab87ef51a06263c2da5f3b32690481cfb6 4579375c72f436e34d079cbbf83675a37d3d62f694e0e481fb5cc6b9f9fe8ec9 ebf58e8487dc59a40375be5efda09206dbe962544ac2587c8191f033696a8481 2ae3f78e54dcdf3bf66be5198241a0a4a86d438f7c96411459588ae4662c7781 7ba2ad907291174e207e0fdbd3560d0302d02a13e05b03d1c3c40654d75dc434 88c664e10e2b35ab8b8ade746f3481968ac79f641f1cfc7e5e8e2ff4eb0f2b12 587505710f8ffe76689c53a1bb6bc1e873d19459cbe16032c196aa5cec4568c3 74689037fe54777bae7589eb506c9c54246b6a50b8cbe69399ef82f715133494 c07e4e3a1b60ef5f6714b5fc26ad9dcc2d64161d30ef95cfaff56b34670b2c89 5e6113a7a830423c66a6d57c2f0115a809844a0a32a3ea44db5a7313b59a9e00 c6e98495e4a7a735e94459e74528a8fc88194e613017e4e9d4ef4b684278610d 5ee4161e4524c8dcf034a0476f7959dfc9d52e1efbc6bee4a934db9220968b3f 37bb51e972155ab545813fe6cc764d8cd2eea959bf697d585b8b3bc7c9f96809 06b18dc9b4490f58b8be4115dcdfa08d69ab464c46dd0a34475574c33710aff5 07c6e5c2f4acc85e437471334c9fdb2e688381f4df36e3d1b6b311b3b3368337 6d12bf5823fad88f9e9b43a1a74d9002e10e1d33342faab95b3267a5b3ec86f8 b1dce8bf8ee916793be58d0406ca42597f6b85ba3866a0c90319695f4144cd14 1d18163a5c16a7272c91f3fefd4ecf7d0752cec953a2a16f0dd66dbd2b05a128 47eef7e04e5dcf7112301a3436e2ebbea71900df43c17f0abaaaecad3147baad 41e878b6ae37c3eab046ad0193a56795a223f0d9028ea050904fa2ef12f41e25 d8a19d5a3da95be7cad8a54a2fcdfc3d77d7eded306b2b4e48b31985c241892d 25ddce91a09ce1abe44288c981a3d4b7b6f7d1824a3671bee89eab5a23e35a2d 0cc5a885a15162224606abc81382cc1e75929b890ef05967bb08a2615fbc40c6 5d91bad315868040fb2f0381c9ae03a2b41d61fbc83ee3d05db73b3b1c51d597 6ac02023a8f4448899956b88c52c4490fe1801d1b5fc877ff777b6db2d7f7e7f b64b5f577e8f7b9192d8c97d60a6d9410ad80ab1cd6caa87911f61529d805f0c 7944f7a41bf0a7dcd91a8ab54550b935d2d59b6f6381edc0637736df0f915060 765d51a158843d97f4166e081dbe52562f7441511f6de2071468ab1e5783b026 b3f60b608eb115bb884d1aec12bc27543abf2e151db745b22e4889ba7fe2bb51 e9cb19ccda63417de67dbab5e6550fde61b6856c4fbd5c5cda5db3b4b5587e38 ad63c139b13cbc8f5ef62040229b5a8f47fa8e23eee8cfccb0fce45ec5c319cf 1b03e3fdfcc010d53c69038cbc1b2f25e04088f8a0d1604ff02340768d66167a d49d3fdbb1e57b80922d4775fe5d0059644fcadd889539179e2926862418d67c f984ea6cf353ac1dccd323ff5b7e9dd3a2f3bf8115c352a1bacf27478651d395 f163f44a7a64868b5faebc63e596413d5fc33f2bdc0df790c55a41f186d2c131 ff81d7215883858366c460fd189160d5caaabd63ad8ab0e3eee3160ff3b3c0a0 f061c85bc8c189b330013ac67fa08e3ed649810b353691ff3d17da54b7cffda4 ab95032c1b907f2261ead8bcb9cdab76d94bc5631fe1a5fef5a86b19c29341c9 8fd88d0414d67532730687f315796713c79c55d2b3ffb9902e7e21e81c14f9fa 9b22ec634289c6e695cf9a93a23c2045f706c19bcbe7afe073caebd26e63664d 72cf4be77fb7ad3e4f7625f9257055f90f48f4f97b3e61a7f15614a0afbe753e a2722309fe26f50191be60c228b5604c663506da6a98fc13f1e68fc46dbc81ea 51d1e7454b669befb3c39010250e132e38205a47cfcf421cf1c85fb61c1d89cd ded22f60f5114c872ff5176d6bd01dec70c9ab7152172394a8bc8db6b58554a8 1e637eaf165edcd871b800006daab7be5666b24e44bcb94fc6dd193f95210206 b30449df397edb69b9f5f9c8cf0bbfda775d90916cc560bb6fb3cace916fd499 2fb6119120ad24c3c28f478c171a9a7f3a9efe30c1a18a15a6dbf28b63ecdf9b 4ded739e3f21f0109234b80476a58f6dc6e661a001a309043f0445e0ba86fc7d 92e5362610187919710a5288635b537b7fca2968e4f0648c41317062b18b44eb f83ef27f2754f4473543b3ea159e3c26478ad56cd65d41b1796f0b6b0fbb9cc4 2995b6ff9e017830e78d77a85dc0ae421f9f589e3d0963a74114bf49e3c5b10b 928afe6dbb7c6e7456a6fc480b2b348f7a3e50851e31299fa7e8eff4d373d1df 0d9f9941f437da577f98ffa80db570aa8f2a927d59105447ff7d199794e5520d f1f9dbc383ad04f695ae0310a06fa423622f3ed0904ac0668ee8333f1e243488 f5aa87cc1d10f7d8325bbc6e8e899c9abf67655e600045358ff4305ac7d20a79 7d0647c48cc5cd6760a58203ba588241c7d554119ef3f33b79324c4e8f8594b4 b6886a17fa488e09083094e4379c567bd92d015c62ef2ab1aee293bc9fc86575 be086a4d819ef43ca179688f295c6f3d7e09bac0fde974e3feab14b6383bf4e2 bdda2cc079de137506a8221f63babf3bd03d034598013c51861c2280a8c99453 86488bca31698a70fc01bcbbaa0da2d6894caa4a9a0b8b2c3536772ed791dfd1 d52acdae6cec1822677cde7e5ec19317cdc7af41a16bd3f2e08238bac751fe4d db31d18fce274bc9869c027fdac3c95601e2724f357d166592d915073e71b3a0 45e485682b7496be89f7d9941d8ec84b5412d403cf967304e32fe1598845f6ec 7c67b688ff9823f570da7e2cc8f3f25b878e0424a25d85ae1c68f3f94f28d9da 9590fa6a5969a02b868365885173bb41a116558b5e23949663abc1059dda49e8 5878f40d1c5a099a5f7808ba0587749a4195015c939b59a3da41df64ad916185 6aaee5719c0f4e62f2a53f59bdca15d28c166849f0dd03e7f4cbd3dcf8485477 e9d4620113010a1aaa39d27c9d24d14ea68b30510072acd485e79c073a10d4d5 93d3e21120f56ba0e2921985cc953bddcec9d5f39aaaf1e43b4b8fc371b82f8d 2e68dcd365f68a245188a4647a10cdc9acbff55659bf9ff2bee98832f28bd185 5248cc6e14ec458324613675e68dd2d71322890840cd0f4c76d985b11435703c 8dcc493e95b6604e399281fd9a2b60ccaabb923f8d9759b3cd344186309219dd e42f184d6f837968d533e92991a5e93dc97c926c9b0f0f8f5d9c6786b05155b3 2d0200df32e53a379fe8a87fd93a696396bf6c34a75b537af3161fc0128d3ca1 1ba7cd3c1de4d62560501f9000c9b047d04bd5abe8b0f26a83ea611c2e33f58d f32f841aa45ff7e1dc217211e04be14719bba1d7f771de579c9660e32b3a4eb6 ed9124b8662a90260775fa915fe7579bf4ea64c7f0810797c101c9c59c4a122f 03771261c2bb1db80631eeab47ee84cfbe814f2eec512b252b12365fcc1b6938 d9d9ecc245803621b780677c389e05944eccfe49f276539e33595df47606be22 6eea6cf6046dbea625b6554129bd7189ceea00c81e897af75cfb4339becde0cb d65ded39dc2a2bb9dbb13e5fe88ab048e46d3982e42f22089227ba36e7c8e7e2 dd35a1cf5bf8aa0d36eae695a5020b839cc8721c2c757728e630e17f266d3cc7 d465056c444c67aca0f5018ae78f217b7106ab663f85a80c521afbc46957aca9 f5552505a8b2e34c242d3043db380dde399e3db165d7694545aefeeacfe4300c 9132e2a4e0b63ee5c66317915fbeb9aaed0b15e464e2affa432c89159a37f245 1280f97b86efdb2b8aed32367eb1db42c9aea33bf8d40ebc7e37a2f402c399f3 96a1c9156a0330d9ed21f8d0829bf7a3b3f6ca95b8cdbc9baefb59c7b064e24e c1822e25322776bbf4c2189e3503dc4f9aa7b64b854611866b426823fce88866 b7a1e5fdaf73069de55e9ba72101c364b1525606269ad0008ebabe271f1b8f3e 6316efd7f27133870d2802a098b82aa7c60c1fac566b27a6697b1bb191d20227 f0e691804f533008a5eede9e49102d5d5cfc160fc691b2944ba4111c4ec02e7f 010ee6c7fc718e54ea9547a9e826f5581241951d8391ef5f3fe0283e45e8e615 d3698c7a9a5d1d0dec6f1b84276864902c2e131c01d5acfe69601c04b9626479 35ddb430d3acdc637f010b84db001828f7448c4177aef0db49d8215e02d83b6b f91962a5ce76e3a8fa3c864aab5074eb24c2c48e58ff9ff87d922da90ca61b78 22700d3eb96f7707c79e414bb185a054b8992800f844d124aa5889b8cdeb05b0 60eee363b565a2283dea39e2e46e6d4773ebfed9314dd0cb32a4631daffcc841 26f27331774e7daee71e4fabd87fa5c489ee6cc072befd5c75ab3d0053510c04 0828cc16eca644ca2ddce9044559ba40428736621e815a6de6ec84dbf57b44cd c245493372f2e25578422c8f42ab38314761a808cad8746795f91ba1a393f2f4 ad513dde76d036080abde1bd06ef4e53b72458ba96787abec3e20aa7d2d3bfd3 1d1df3d9ad7321642be98d255e5b9878a69c88c7611b0f49a44cfaa5f78ea02f 49b65cf0ba1525e3e7d99b9a8ddcc43da7ce3d908f90116431fdb013e7d60dda 30b82af249e9f015d135669ab8fa9a503e001fdfab7f1034136a359dc3292f54 c0d3ab762063a13f4f122294bf2d142e3b7c366c9d856ff2a0e9394572398b3d f1600242103423e3f99fb200 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR6 %!PS-AdobeFont-1.1: CMR6 1.0 %%CreationDate: 1991 Aug 20 16:39:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 44 /comma put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 57 /nine put dup 61 /equal put dup 126 /tilde put readonly def /FontBBox{-20 -250 1193 750}readonly def /UniqueXX 5000789 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf 5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b edad3b72ad63c2918b6e5a2017457e0d4ebc204b031f3fc6c13d7da7277a94ba 018e9998b3dd888011a5d7c4204989f30f908b95533bda845746b673ab71ea57 65a0d14f4350707e47c8276305b28513cbe1bb0dbd269a53719bda46e536685d df78ca0146b6b93e760256b74d939d4e35b5e77238f04c92298dfdd188feea30 e053eefbcbb52f2011772b3aae39f5805597bbc1e8bb75a446ce014030f4f2f0 f49f9e962ee4a1024a746fa92a3628db5270732b54e43fe5ecfa524f127e5fcc 788e77e66098336ad67fe4cccaf0253272d5df79864bf4b734cb9a5859d557d8 bc11b8e00221ebc12e97de4b1f466ead83a4c894709363bca9040410a52d592e 34ee40cc7e5efa920546b981aa659513a24b1b85c221a1875b62d0b89e57a368 321b8043a5b094e0379760a443d632892b14ad6d19dacc8c78093243ad67e6a3 08e56e6b68412ee690b10dac6e17708754a00d51fc957b500eb80175716eef4b 2ca1ef867614659bee3f2b7319e97b6fdf1efc847bf3cee3156f72f21751da8e 5fb6898919e6799820d3de0642d756e09d6fae4ff08dd3deda3173bff4bb11f7 9109c97ddc05897af709ea199a90fcee8ce4c7a3c15b18170c41c04de2d3fba8 f34296a95b8e1e8de3739b17273f8f2c85e914615e8eac5e8bd2387ba3b1edf4 7968f06e2067d836d0f9f3e085cdfd2de06a62c81d786b304326f7002e83160a 36598589228b4dddddc43c85e1d126f8fe81b828028e26317af5894aaccf4f69 6301e1a9fc45935d8a414957f08febebbc3a72ada80f101e47447d019ade56e9 f4fab969bba2b44e47399fedf5caa1bcea216d7ba713d523dc28efba4fed2f7e 6318a8ece08e180003dc883a04bcab3431e7d4a1e0bc38c66badf8d318b730c4 a52ade7f8efb7412ef83a329df739ea4fcb6ce2b034d4d38c9839c05dbc58f3f a4ea7db8725566472cc2625e666b595e66984ca6a088918aadac31442dec5614 dc8f064ff90e97e4ff731b05720b76be3166a485be3cbf4453e40d1d0cc4bc99 ce2d7e72cde28f186dbfa891419d43cf7000130e51b1912e270a0afbfd9ed1e3 d6e489874357ee4a601f38807535bb200acf3633424243601422cb03f4a85059 f4fde8f07cfde9aaa02e30e03332e2e4becd16e87e2916b1f762dd68cf18d396 628094e76a6e8404fe09004d6f506f2d506d456a858c3c36667ba868c5bd4890 feafe0c159d6f85e72c3940757fbf4627a120140f3ce416c24981c48c8a4f9b1 c59c6180ac1ccc79d403930ff73b98427d18764411be80de1cbc6fe0041e7eec d8972b7d6d2fbef928f5360251a4ed68e2abd5bf80326728833172b5d147701e 92285ac47ed1bfdb52b07bbd3a605343adc1c50be33c4f0f095d2ab3012c97cd ce81507e2063fbda200b3a7601200686f191a57b2dd18f69d5e0402372973c0e ccbd6f361073243fbd32c7c2198fc44a703dc28a31c15e444dbdbc66fd2bf051 50a80395301b542c0b831983e15670b6c34701c6097353c637d07ea753124155 df58159637af01d846390445fc9a1f8704703583bb89090139dbb068314fa7bd 30a15dfaa59ed4f43c32de2ef8b4c7c7a4bf47c942418d02d3168435d76f4081 8aa6c36e69009b2a0f4e065aa403fab5c92f7474a83c974352ac68e7d2ab769c 7118f9cfbb378388cad77e8c852c89ca99f4c719d7de4420c724006afa7fb0ac a21abf30e0ced424a1a02a74a59d46ec2c5a567bc5a422ec991529963ef76617 27d7e3e4f6a0e17737f7794407113b1e5dd858b70637324b2cf6721359e772ee f1e0d56740c03cc3f29c131d46acb5505babdf685e0a4b9c866bc6a108961a09 6bb8ebf44699545e57e4e89b50e684d6228b5410c7a8141dc712cdc9757c977b 54be0bf1383222487dafac60eb4fe5e7e4304428dcdd1fde5688a7e49c5a89cc 8b048e398d257a2e2fde2544239b270aad4ecebd3abafc348e148b5afba4f083 10b7322d18df89aa7081e2aade36764495468fc51a6febf92bab6950ca6af108 2ba53ef09309bd0d12d06bb87b79ff1bacddf3082339fafedf6eaf651241d786 80f8a7278e1b45d71660267bdd47e6d94d05441234259cabbb15d284ef7558e4 4e3306c199883c97e3aea18a89169e1f9aeebb1db814e46e39154317e769b0f9 2d0a98618e2050f63ea10fcbf41466fc6c1e0a68ca5fbd5e93b2ec0a54613f6a 77eb76ffd2fd298305c6749f7862472262f09479e9c56b69287178589111a71e ee4e1cc372545c70382cea498cd91106070a559324a8620e2644fe2ecfbe6372 a27d518b5fcfeac996a1f51432a8d8aaf51c5095aa4488007b9af5bc82e2fee6 faab08b756f1d7704a3709600f5642eca8d420729557df12279893dafaf5fada 0b16512f223cb2f2fb6cd0046abdabaf2651f083b587ef8b92d4ce6522c4267e 2450f0b3ff2d490d7ad04c5d0535e17fbd2999cddbeec7c493bd2336675f3cbf e603881c5f7cee292d9fed5dd26f2b9f9b9d9c02351cbc718b7637111540ef4d 8f2deddc2f9202d46f0be419d149eb0220cb82d18bd40856f284fd525635765c c0ec3bdfb6fc66a2d50f51af9e9dfd11daf909f1988b25e9b932771d7d4cd76e a11863f8a2dfee2c0766617afa548f068ed009bb7f5d8ba5e82f34f9eab67377 cadbccea62de2fe6b29ebcabb758fcdd56ab20381435de888107ab720898ea69 49befe1ca621a211f6718a8c1dcc269b99a2fd385b9d632c578e517318a72246 e04d559f8aac90933612656f6d0cc93f3882e69f546bb5894c95be1a07072d9b f35df68c29361897504bcb48eafc6680c01b4fd537093702c3a1ba6b0097d721 c232547b14809588518b0010cdf861804efc4c0293ff66d7093381ad15afa78d 1e8dc1a9eb3a09bdc44782e2323874ea8bfa7753098829c54c8bb889976c3555 d6739e0e26b28ab2a918ddc1b780ad13be09cf4be17b98d31830bbf0324c1ebd 71608e46d6df0b22df18af72a227debf653c795070b2c76d8fadbfd7c2518ebe 84b59a2237e551f7323380958156b5b09b5dcbcc567dc03e1cc8add8bd990d89 695780c4407d533cc5c38cefa8616f7bdc37f4f74ae9055ca2be17df56018e51 cf6ad0b7282acf83fb3cc37f318f83b3dbe9bdd701a2500267e289c6811fece2 8779189c42ae05b1f246383919a30714ab599df220f24526690283d4b5055243 60a2f03d5e9fd49a6ad3de76e7d4aed261d9195f2e9a1ddbe9eaa9a1fc06b66c 8b2dbee670aca032c0d38dc3d7afd47d6f13dba5805d11561da43c3921a32dd4 535c8d92d7edf479fde2f5763215c80ac56fbe30ae1f9397064eff2b6cdcac3c 9c07dce42dbdb0f03a4c58764081b082067e943dcf95a76fdaaf3fec0407e896 ad8c9a28ba43 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 40 /parenleft put dup 41 /parenright put dup 43 /plus put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 53 /five put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 64 /at put dup 67 /C put dup 69 /E put dup 70 /F put dup 73 /I put dup 78 /N put dup 79 /O put dup 84 /T put dup 91 /bracketleft put dup 93 /bracketright put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 125 /braceright put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueXX 5000831 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486be465959b1188f76df7824c135a7fb382c4e1 1b0ddfe856b6f34552ca48c24b57dd8448fac257c4d93fb122e1218fd36b99b2 d79dadb8a66613ef11039be77816a7a2d6781fe0d69cecc36232ae87a172afe0 95532a8c7ff40bdd4a5fcfb6ccfd8f73c572231734e0609c6743ee11010f6579 820b367c49069ac1d45760c0ce8dc1e67e2beb72be6d287910547e1b4bb52465 b75947d224998223275a2c340a1c14c04328cc2935c53ee2723f1de6357a291e 14863f6c1411477b3ea074052b30a4c1ef03ab324d678307e1cb02c7aaffa90b 73975378b9debcd3f6aab626a361be8068c60edd0b2be4a7bbf4efa21cc23607 bf7e2556c17b5923d7b0fc036d5fea743c55f2bbf72e8a61995bd63d7104a085 b8dd5a83d9077376a4ae8f0c048606bb9e84c640c52d0a95b35d48cfafd6ebe3 d6eb0ed88c1212818ca93e40614740a77c446b792d02945642014a5d55ba970e f97dcdd5b839f621a052d1085a1e668161d3ac0227c7867324ede883589b39e5 d152793009cb5a08eb6719a44dd01b6147e3436bdbb28215ce3d29a3b1dfc72b d942f8cb3376b4e12cff53a793d935346ceb2afc3428cd9313c671ec1911252c 19de341556999aaf7417aa5085daa35ee71353fdc2c7d83ec2dedaabb1b89b99 e4cb5282159cbfb45a286f8d6bf3abdedccbdcebaf6994b17f1be07d10f00cba 47f2fbf66c0d83921a5a0a4e2054a8a2dcf492cc40de855b476ae77bfe12ce22 d1195e3f9d51272541e21267b2924e293e7a1090b4eefdb707d2c29ad62a240f ad89834a3b49e3715ed086a4bcfb0b5118744fda024989692cdf4e88876c2dd4 e1f3dbf5792893854a5c4495c99a9e9e2410ad797d5c79d940621c6e94fd03a3 3430a835efb9f316b5b130c80816f24d6fe93de5ce03892cef192fcc5a46a90a 8289667298876ab0dbe9703e604fdd6131a14d9eee306fa3e9895c58b869c34a b2763f3b6c0d5d4ff1c1e0efd8346f1e4fb62b64ca21f6f7161dca2852421a09 d520d0266ab9908cf24c945b1cffb5ec426807e14be9928789d7d2806d80ddfd ee5dd00a9c1955bb16a83955a27360c634e355097f717601430281586a508f2a 42ec3184668df4378c731fec8db7c0a39128c58475aab2fc3cf1b28c21339c8a e3e2712318943e25407d56835ef3f2264972c35f15be05e71d98a2b0c8841828 d6947340b274417a58f57b42a2b449e7bf748d5f51a9183a8b5c6774f04a9054 bdaf59279b4e8257b4fd279ad49dbf3124b31fd3abe0763a65b1e7a6939c63e4 4118d3138847d7d1da363d178b2276fd33f1c52ec8022b27a3fed88c8fd07ae5 a314c7e105d40a234d5ba209b2ec44aea103bc2db96bc1bac33788c5bcfb9399 7de85411d2ba18067eda80ec0ad2857ca21c57cfcb25ade2da2959675ae716c9 d101e3ff4372c7389e52553ca5e4f82b7ee461130800edf3fd293f2612e1d565 c2f8c1199862eb48b70f38d8fb5983216f17145568aa145e4f99c46db506b00b 18269919c25621815bc6aa41986592f11fda00097510f64ecc7d9a7fa734b65c 449ed6ac6efa4954234dc1b939674fe9c25e456111c6be98f7697d25e48f0737 326ed9808f63fa6a594fc2f47641bc3b110bfa14a7ce65e5726f86a9a79fd5b7 458f3165f20907309072da25f2512191e97e9d76e457b205d15c786642948c2e 8700c3c5f15529518ab75b801c073e43658afc0ce170986312a0ac1cabb7a2c7 6a7adebc7d8746ef7e886c8d778e0c5ca2084724a0cc6dc98facc8c7f786a846 c082a8bbf620b6f0575dd4ae610866bb9f0b8133f709aa35b44036ba2e0da099 a458c9ac4990e4488fa6435a06e574489a9db8a8c0a22009339c5b862a08f8d6 be0e31e2defb50a9ff1e1c0160cfb19ddf7a69396239165489de4aba142ddaa9 0642eced65e28a573add58d64d4ccd96e67998769115c77e802d7ebd56382851 0fd5be826d1142f74c50208f5797a08d2c5e6d72c67accf1cd049fbeee8d89a1 e5b7ce6195c0ac0d3f738498f4c8aab6e8db7cdd6c9aa37eeaaf3f4c22c985b2 511930f61b0ad1e38770b8ecfdd5ea3d6f4b033cad649a333e81742d046d051c b1ab885bb72318ab35105e2f8d7aa89bc24baffe8c3c3ea7d303c8f8f7c818e0 2adf41aba40fd0102164e5503a5af01dc2a1e983510eec0350b9cb426b4f9c71 7ca1b9dbdb299e5feec9766cd171a62a0e824754109342e66102128d55fb8c6a 176b066258348eac006a53a483fdfe6cd7c316c7effd367192b0e721ded0e1c4 b51015d0898632d71436a6d6ead907a122d7ea10983c1b68d4828b6b51b78967 5c457e7ba02a5179d4d345d0fd0e4d3dcbe987b62cd4a5fefd562911ac6936f1 26ae89f963c1f5fd3b80cdc8027c2593632a37a4b0e482e9837daa4b9175bb02 50dbbf50f1c8293dbec649b0f67b0589d6205871a31bc5af5649633a72b1ae8d bdf2e2dd71df9b82a1a1d6438624ddc5bfa8137b52ea4420c5187b153c2f3ee8 2ed5d0be80ab1d2d1a0a0533c9ebd4aebac4940918313f71c72b113d1aef0210 ef1add5f28736a5d6f6e0bbdc6627f3429a4a9a526c03898a3cf71e67c91fd40 fa6c68d417a796ff3b1dcd893f7defd104983664ad0df22f053a8673e176df0c d5f1558f9296b9dfa6dedd43263ef7336594b569ba3a5dc14c8f1acf79514cc1 f19a723e2beaac6ec12511a0025b8a36921a34e762c559e91bfe4f2287dd1080 3825f75255c8c864b05614802f2a9c1047dfa3a3eaae6e727a14b356466f8a61 64406cc446b7c33c5370a3df27e770a54826292d023b931871291f7b71b644e7 28857096f358e2aafd7bc0d7d52649b6e39beae0d02bfa9eb0e0d408324df056 c50f1fb04a7d9ebf44d7da62f76e2d6ac6ba218a13ecf413d96fb61f419ad1ae 336cfe0b85330f43a71f79e3b557dd93b1eeaeb65a397952b7008b1f5a5c5351 027e7c1f6cd320b23dc85ac414468484a4a0d3a18bc117ac94be12918ac55dfd 81fb2da047878822db715fc082710583e1c6d403c502cba55c6a6a6932183555 38e89607568752b21547d5121d701fdd0075bc4921ac67f57153aebf37166b6f afe4306260b9ef3956b11b4be937993ac0fd52506c438669b5a0eddd3033d407 7f129e7759a1f17cf395fbbb425a20ed44d2600ed5af60442611f3a116ec0a6f b16a802df2bfa0f85eba844d145fdbff24c80b29f26a6b19ecb52fdd057ae8c2 44a1f5925b108990275bcf18159cce038d2c9270ee5b091741c0ebc6a8d52987 12dd5a66378014af4bc11fa1d042c3b649c373499577326f458bea8e38381521 874fefb7b0f4e1ce0d9e564f886509f5cc61e1ca2bcf5b36d79990cd2a97f13e b8aec7ff61f56808bdd02ad82a4c5e8bff81b199fdd89b3fcf9d11767449ff11 00d84e0d2eaec52d249e41981dae284cfe00001519c801650ea1dbb5f9a8f4ab 978e34c5b50e3aaf343e8d657adfc09532dbc2f42f371493df5e06adc4691516 6ed55f39452ebddcb2c7c312d1c6caa0514a91233c4d2670d05eb36f13f3025a 8c7d67a44e25755e80a814cb7c59df561179948ab1a619393ce61adf6bd41aa7 0c21d1cff1dcc2cc2a3769a37ce1af0dce8edd1b806a4bf09e98318c922a0909 9acff0b7d17172d54c323fb5001852cc85ee2871c6568318652be1a0586333b5 18656495cd220c26208734ade64f5df4d54d4de0b94139c2d865673b4e27b4be ff4534c0e00d0f1c937a6a2fa5f37d12fe3f713fceb3ec5ea44228dcf4d6ec90 59db56213879d234f0a6635832292387be7be32f44a5d51143ba4f5400c4ca9a f475b379d4ea9620621bea0b45e914c9e96d9d348260edd236db796453c7218f 2c8a33e65413d7f59d3653d7e122a19a5a0797e72f7b0fabcc94bfb5057c9ddb ea2cb3c8910c77a488badb7578de05a395fe09533405b4ec41d43d0ad4450acf bbfa203692688f667746e1508215316ba2146d75251ba89bfb34a356b4ea2ff4 cabdefaf2112cc07872cbf7058aa23a4ba750dfa40b60e92bf61263bf5628683 2ec9ba569734f3a5b70d105c4c0b42a05c6327eb168a4c1e70dd920e6591aaa4 c696cbb5a81871b4d0e386159b1b2c2903e1eabeae1f5ca6b020d894e1363445 41320f59c87559d9600cf4f00ab06bdab3c9d30ec028b118d7139ac539acb7c9 96d5f32e6867a406e1f16bdea0799141edcef202d631bec516de6e2aa74f04f9 838bdd49df24e656f69db20405a63166b88ff01f351d86e9ee561a824d5a2781 23c2068ab4ad22ed66228ad8feaff1a5e508346947df1772752ad23755cfd529 3782532df467f0162921dd4b7d7174fb8ada3edd2c99407ff6dda5d618c5cb2b 2143f865574b49c058a3a7e932b0a20f0003b8e895e459a6286103b7e55bbef0 d851347e4cb5d1489e2a90115c3e1839581ef1b29362907c46abbc6ce29afad8 288c77597397828889477ddb907d8b191a50955e268e6c28120105c841bf9136 d357362b4a8f56c95d1970233baf7872a3edf123b6686b3525062bc5320c0460 899dc13cce706b75b4a2731fa219043ea2c507f699fea022a497f83d8ac161fe 7e1361820116bd6c742a30e9c8f910a75a3a2a25ae8ead779e76f1b1420fa043 1ee05eef50c83100832f0611e706ae257349723c35896e6dfc5c1859628e9df8 688a04a87784990ef9c29b3e90b726a796cdb23ea2a7cd1f686c6f9725acf4b3 ef2cc9da853476a1be801149b1d70f89c1c21136ecefaf061b53c5b75774a8f1 70329beaf4e8a5ae1a7222db3d1ded8a2c6efdaf668a10093a81e38a768eda08 0af100a52ae133735dc5a3fa481a82959050a24c085f5d61a11ec9db5f04775e 709b29cbc314c11c3b2247fca25a7f0c616ad554660e2039552b9f49e7c1c5de 7b0a44d428fb4a33e27aca40b717537dfae88581c2e6157e7ba5f5fa0d92644a d1729773e91b0e752f8a29d3eccc25c95ab8cf476be5ffe70fb862c859114ab0 b427c513b55666376ebcfb4e4b0d3842063032a120f1f4b68bc80d767c9b7c25 b41d6c7ead2eb564bcd546bf9385324582ae06f86b482fc51211ad869f8c1b82 1d8a91b333adc4d2af4130be66547c4f3153574d9a5a0a41efb2ff390b2fa4db f986f66ba0a9a0d8dfaeffbb6ce3d4094f1a3150bda27be8e4206a78b8226f1c 0a9e5c1a2d287db70687f836c67fe072274c4bf1cb485f59339c24d7e53be165 912a023913155f9432151bba0da1290ae221c002b1cac2a538825b14f96c5a99 dcad60ab45b954568c27dc4c642d2b29fe4cd0c4ae931b5790e2de909256d9e2 67a7fbbf86cbf10411961cb86305c2b14fc4f3fbe5292082f2bea83eb61f895d 82b409f4fe12c2974568706e4a6c28de7fff3ac19325e8eb4c58966b1a07a606 e5728fe903eec6b0a383d4139aa17dd473b86d1d5578486cc04ff327bbc940cb a9afdf435094f42241545287f966ce5c5b4816a7aeabc7727fe7811481172f26 eba06eb963c5fd3f4dab89c5dac2406c2d5d978f8665d44efa02a28c7897e8d5 d1e885a3febe5418d6fd4968745607708d6beb037bcd13e87b1debc63c5e4df9 211103479f3b2634777c5ed21c4cc12f97a5ae48d962a0ad60563090da7f0794 e010b37e3084773061277009ba95df6684f4c2c8e1ebfc66a64c665e5af212c4 8e19a020082ed44ee538ce5176ea17c55417446d390226410dcd090c7f1e7b1a f51f19add1ffac4832f96c29f870ea265c91bcb0de644319dea7ccb668eaad28 dd7f33ea7f5979d7055b3805747f677fe6f372ca5c2d21fc0ed48c6340eb4396 5c11bd29a0649438095b7f73509b022f2789d864118788f229bf324781dc13bb 1a0bc56db41f87e42ce7de2b91d5818466efc2e7a09445502f7a76cf70581344 e0bc3872d0091d9377778ccc657a5981a764aa416492c3660c5e932dfe3b56b0 0052942c5523834f6d304a48cab5bc9aade428331252d0c7b31f572df1701a89 29915f3f8f13e7d3c9a94bc42586458fa58f2bdeb8285673be3b15ce3c379418 dceef8c3a476523f848be402ea6f80031b99f2569b6a4ad3356b8d64250d1297 b9d05ae032ab620cdcfe65fdb3e96b77892a543e4f7d159bdada0ada90b091a4 c73651cf0019c4ef4e9d5229e3c0adaed1e1028709b4433842f11c4a40e2cb05 6b9902314325fe5f15e9d2867fe2ae7c4ccc81627b1f74ce674d73c28560cf78 2525365a69b4832e8c96e04f1b7d2fbf8364ca618d6a5a7da20cffd8125915b4 cd57aae715a407d3a157f76c77b0a8ad89fb083ed0492d5d033d343dbd4427c1 e3b41112ce0d8aed91e8b6af4309b46e5c8bab1280b11e7937f6e10b2e2b18bd 4beabe9dc6967c322e3f9e55f12decfbc534c80418567845b6ef596e6d111040 604adc320147c19e35044aa6072f6969014c7f030787a84f0389a3e22e38dba1 18d4ddcd1dbcb456e5f8ab0368bbab064312f09918bdd7808e9bc48eaad03b23 5bb52bcdcd4cf4f8e348fd71c5ec3bd51eb7ab4a7c06536498e014008bf629bb 358a55ed44fc86134053187764cb0adffee77211dd113a85c11cd54b37ee8c3a 0ed78a4b9af5af91dbcef57ce7919e3fa73333d707f2055d2ba8d33c54f5fd7d abd1480d0360295fdc937c22265bd5041757c7ecb9733800623a76f0f46285db a499ac32d3feb4d8f8246dab16294c63600012d703beba36ce9aacf5e15fc59c 00b701f2b3ed69582b8ea2a7d0309792950e56e28ed7101bd9b32eafd28f9513 6c664353f17d611f0b426ef39876965cb29497e32eb7119b3db07b760be085dd 50d7a9d0d653c72b1223a67905f16b715daab311758ede9779b5ad2fa97e5e71 207f0434acd533678a32550017f888c978de623254518c47c023f6fb0d0ee458 6a96c0d8dfbed5b031d9d9f04c8d67af4cc56ec34bbe562511bb09fb7f48f021 647c95c84eef159dc8743b72071feb91a8f3bcd2eb09a9e1c75e47653d2c78da 8704c405d8d8a915033cc81825440b091f020eb0b825934bb7f049692955f750 4e94ea9fca7430743ab30a06dc0f184955145bdf06bf8a244ff4c1ee560d6aae 293a83436e05bafa0fd60b2349f883800d601deab89f8c6b5efb5ef94767e61f 775366df313bdc5d02b7d56234ae3cb4d865102884a5dfa3cc2468c45908b875 f981cfa09c5bfc6ba40b96218cdec1e71fca4767307441ff493bef659f073451 d64199ae4ab91d51a541e27c24254c4e77434c837c5236ff5d6cbe4f5e2a82d8 376ed3db2cf550aaa21393c8cab080044b1e8155019137e3b0dfc5d16808410d 444730fcf27546ba5f567fd5ffef95b45ea33c0eab0e8cc0cea9816179053f50 2228d61b6d6edba38dad5b05249c2b096c6cf2d2f8a5df759348a2ec5de69876 408c6ea86172daf17825b9da2415f21548d1153bb07a374244f770959d108f47 a54e576a5c7daa3ad3ce370cfc25e5c64ddab180dd56725338cee7fe1bc601ca 0517b33df96548042c3b706ace64bdd444746da1239095187c1695fcd879d52d 68dd5aee5f9c0241a1d581d2bc8571e04396df826e6c4e8216c4909eed8df2f9 c08da2fc5606f461913054f994d214bd656d933b48fa3d1237a1ab10f4e26da4 f0018f69c673b751f78190657292b474302b1f68057edc88535af5416d05dbd7 3e0fee8ede3a12a50d0bd20a170d144d3d45c66412eec16471d7163da0241494 08e78cdfa99592c23274a6df9b01e9e53e89df1c3f6e4c968feedbb8b19d2bd7 1a61944fa827a48f7f902d52159a100a9dd5ee497a1764118fd876cb79d14a4e 73c9d7d9b3fcceaff62ba5575dea1b6ec31211ca1661fe8d54e0dda536a4acd1 d1b5043dbe65933d04d54ad37b12680ab24e5fb81816cbea72fa95a63f3dc706 bf02e558daa96f799b4622b9b6307d475d652a3a4925a74654c2d0be73411faa d16c5c5be22b72966805b19b6392aed9bdd300ee3cb8c4a088e169113f66cc28 dc989cc33290bf341c1d06205ad8ca5a8465b524f4627e28efa286b87cc11078 6f4d45a411f2d67b1c3f3ebaed02e005fa4f9239cf39ef65f91c7aecbe68bb6e bf1a2eedd853914ad5b068c2a5680759e43a7502f52eb00db9c42bffb7b889b8 d679273a63e88cffec91a825c149e63b12b21c89e408fa4fb639a4cbf156023d 269abba79883d3f5a7825ebf38b658c715ab9c58413a5029b7325adfab5eb328 2e91522ad8ae22f9ba445d164110e3c3b5bed490b6dbbc14ccefdcf49fbe5159 ff59791e543e9f8ba54e49c7509c525608b458a4cba2d97638316fec597b232e f8e6c9f4a25eb288b89beb4913b0108473fe372a420527ef2d7e869ccc76e7fc 8b60b7e2542445be04f8452bee50fed188111178587358dca84a28797c1f8f70 e7d548ee21b84547a84d94169a4bd7be8421466688e06a4d7d024a2f3a2d6f5f 69d623089b7337b8087ad731e16945c6cf0ba9f8c2469e3a6a4986aa8caa4e6a 035da69466e64fdb2073309949674893ad8b5ecd74260d996f74fbb3a6886bb6 5c82e87deedcf600f22af6fe5b2490effc40de3157a21ee242cef5879c687e91 4470b5e6af105c07b55137d0c7a73b52ade9155964a139d1cd4e85166a2207c9 bdb94920fe0b1343ad3ba6a5a5ba402ed0abc47ca1d0570f9d051d030cd2c2bc 1d7b7b59a4a096cef41164acb621c35f4e9f79199c87b0b508e80957d55c6ab1 9b4c33bd63bbdc11628bf1e6e81c3ac2f68f357a830c272ea97b11da056d9097 ef75b0ed0f78ac9e2ba35a0ecb3e0e18bd4740aab3ce107febed2eb281f4667b 3aba8922479659bf8afd2fe1ae8a8a7d06b12e2c80343a54714d312aa522e9d6 109762fafac0b862ff7498a03e5e03322458c4f8fc271544981d55151d66b411 be407f54f258cf56bc72d6ca1f4714cbc527563c6caa825b8b147df0dc02ef6e 2557c27ba4a940b5b338d74f5a32028f5d3669f3a76301a3a0c4b910fa17f5f8 f44b5a9be1fb76a79bfc5a62da97866938e2e1bbc3c97ef7690daa209e855f52 e349f13fd50dbef464a91e8f3d1bfb9af3210ad61d4fc8d9169c06264cf03dfa 1fc47a260c7ab70c5da6ad42152d01037f4128fb94ee691190736edf8e4b9120 5f49fd88ef60741e867becd70cb3685f0dba1e055afe8d42a5392bdb9322f4f9 0f02a02d935f3f517466c1cb549947a6add731b3e9e0af3bf9f48e77d178b3fc 8ca72beee92a90de7411b4656773b4dd9c58cd9b9499d949210d1956352b528f 9bef386dca04197adff680e7c3d4608da63c6c507a4b499f559be9608749e737 ffea9e2b2470745934799a50803eba46512c252a6f89f9abdbdb7367489ee01b 4ed6fc4d387b36a86f405e21597cd6aadb4cd8464122eb0a1a70b27d7d91cab1 8b1bb6640fea3e65a96680fa3f1c798ffe3c64473348059d2108379aad0e96d3 4d66c29bfdcfddf250fc671c547fa5df279cdfdade68982b5b9013964aa0e113 59afc17023f042e7e921b0f71553bb33f0aeb6e04a9b4e4332275b27cb0bebf2 c034047caf3a3b4cdb14f791b43985d61a8b16897a9fcfb66ad1851c326cd4c2 4e29a71c4add00c0aab7a1d30db3acca8a6d6488ab0aec3ec5870e6ab88d4ef1 8086d05b00132b41999d41f89128722c570757a8068fac3e4b3f7bc879cd7f26 19f0da68d068806a9d58278d357010c4a6b970418cb69dbba20627d24a3f0efd 11d20f4a338c8f80f28357d9a593edc2ed4c7808f811128c411715748808d4a7 a961e07b6055e3b514e30a77858bfb5da442ebe1f7452c73c1585070851b4bd0 bde0cfe63ec0fd27490e51f6c1c1a94ace3427ddfc767bb2359a2b8bd502b8c9 69c869b3eeaa201d1ad6706eb86ded7bb43454fd756fc70bcb5c1c501a052546 055b003254da99e3cb0f45b0c153c32e44c55995a7b11eb24ba8aa3df928c60a a1f6bb3654b29e0e3db1281670f5fbaa4d5174d4b296108d53fa0de7dce60e09 1803ac0b0f1b805948894bae114009b51e58526f8b136e47df754753007b1b11 4b45a7c826a7f269581b8c5f26ec55ac370eac73b24e6cc94b8af73adc2ea859 88b98e1ca64fdd91c51c4a6af5d28570d68f02cd7e888afe077408573631eb11 fbe5df230d053efb5bbc9be6faacde4b8c2c32ea98359d7ce39644a77a92b1f6 8ecf11c2859bcd8f96e12306162cf36c71ea08f97f0aa89b629b1119cf9d3669 a422e783b0200c62e0ea42a72d6b55b9ce1348d507e1c78bdfdaf3e09245cb94 215472f8c79a739dde1618a0eb8197c9aa132f7d9a736b6fd4dbb6ec1b0bc5d4 5924f01ccb4b8a22ead8c0665997bded587f045925dbf3b7aae0055392a2bdbe 6174a4c87866c5751c3bfc3c4d19930a01968a8d2eb0a5ea903291c109cf9935 be29327001f32139ad71bfcc630b60574518f343739e3f11a526bdea391f45be ecd24c7b8b98cbb2e3812e9d7a72ddfbd562de35ed07fe5c4924baee550a2f16 0495820c6be7d90f5a5ad6292f4676fadeec495f8eb21e1c105e33251fbf7bbd a72242d6214a5c2be7b0bdcfba4ef39ea9f572f4f882d7dd36aa9e51a8547abf bcbf687160c5f669c5a8051175c861932b3440bfc0f6ce2e1a67c0aea7dab18f fe914f35b7d4cdee2388793cf18963e58d73e4af29728346e7bdb2ef6c291ec7 eb4d62f669d76ed694afc0ff2969ffd5b300a6b31b3ee553ddeb71d1f3647449 b13572f989008423828d51b7b5e5d95d37343b4bfa4eb910c9c27c4ec2a76ba2 73d153f8fa85dd11cc3dc33f487f46dd6bd0235f8779983abfd87e3d2eb669b8 ebfeee70e7ff7fe504519981e09aed568452309aebcb1bc15510eab2201fd602 d044606eb79c25ecd50aa4aba545b17c34c3c46c458ade405e2702468b41ce28 8a514c2b32f2a4cf355743ddb3b1b84002ec5169a7797c52d6e1f6c2d8349579 db5729cd7ff4efac3dd7a01500db633c77a5953ad78812b1dcfb9cca2c6c6972 7751f1231273b45696fb1856e79e7da843b71d4d4ec6b744a0f1e31befd94688 814c644477c0eeaea3a4b4dd1a8a77cc58dfbfa68498139b84e26f6475dffed6 f7875c174cd8ddc2ede0334a87b89c6a81c52f9edb75fd2bd900c2764047095f 96ec85cb1c9171e5995408e13334c19840319962c73ccf40ce9d33e49372e5a7 4750bf9abf904cae184796a398c38ac0f1120c22c0595b1de9fb2ab3ed71a72a e2565eb7a2486febacc1c15db6c0d896af68d0e45afb9cfe676fe79d6c431403 694feb219ddffed7f929671e09048337be26fc22a3bb98bfc66a767dafa47cf3 892670a824214fe9ff52ffa10fe645a2f9069ccfd4506264448e81f331eeeb37 3a4e6cfa03b4995c070affb16e433b1bb166de2852001efd0769e4b35f78f4c2 03aa05a37deaa89eace0c6c268c6bb4f7c883f3da003f4a58f60827a3e6ecf24 a0df7e1eb6aab3e505d9f120d2968eb5167f82d70e446c4c8a47f232ea5f6de3 5824439ac5013bdad77c49e1ee021749420deca726945b54b9086d9a22691914 5f74a039b54e80023bfbb07b71967c420b23004c4cdf51a94de0a2708c7957 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY6 %!PS-AdobeFont-1.1: CMSY6 1.0 %%CreationDate: 1991 Aug 15 07:21:34 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /minus put dup 3 /asteriskmath put dup 121 /dagger put dup 122 /daggerdbl put readonly def /FontBBox{-4 -948 1329 786}readonly def /UniqueXX 5000816 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f059084178f5ab59e11b6a18979f258b8c6ed3 ccafbc21aca420c9c83eea371adc20e038b4d7b8ac303004b0aa205f04135140 76407216032fdd22e6219da8f16b28ca12524deb7bca073cc5eba65c102a5e85 fd48e6d062cd4283ee570a7774597e5bf0e3400b6be72db0115f3cb12db70ce0 83722870cddfadee715f10f1fcaf20e06f3c54afe5ca238539bfe2b596116e83 f5371ff18fa5003d8543226cfd4025f9940365b392a858d27f078d3abcffe4a1 54e78c7692d1a32bf935967c64f01b24788ff8325d61145e2d4a489fd986fb77 38e6b254522c77ca2797a504a9ce4676a77ebacb026eca94dde5922c936f8e90 c43e28519169701856d797b0108d338a1ac7ca5e7ce82bfdaab14993f4291d24 3e7620ad5c7ba78ac94704719bcee0989af4528504a2b239d9315fb537f4d6ba 2fb3ed0c12619bf6762334d9a02a757f59bd6a3100cc8d5ed885ec5a36fa2b8f 52eb9997b0e448764b95bf2489df1e55e7a522245e1de7af0da592158f4be2ba e8ae3db77dc1c34046bcf42b4dafcb9fb52d93e3898901bdda62fad6ec56d59c 54fedbc935ee8249ecf3d28ce8dee3f3a4aacb222c80ef8869f32b0d0d777df6 9f5e50a660ef16f7c36e75fad6d89b2c97b62fd671c444545f70c460cae672e2 e23f2390538382a0686377fc88b8bc9ff9e4bb3bb9139ff45dba32dcb4f140e9 bf6c75ed8d10deade5f0d1d34ec00d54690073b3307557f54d3a532e8c53ff44 da14e599ed8d11d03094e73a7310bd85d47548920f6853ca9ec1f2c79903b982 7b36acdd662c2d47f1c145948a6b25db1a5efac9f4533f9ded38b72e6827a9e2 6e3ab48268e1ca4ced683a1845d44abb0eefcf79b7866442256f91e43409a9e8 7865497c1681846e1524b1bf3852bef6588d46b75160bd15bd666925fa8c6ad1 cb2367389a5dcb776eeff38d956ebb793bd27df76dc6e69e8d31f93b06b1ec2f 8cdf52056d282c9a2061a53d762d3d518131e9650621f26a05c61612f0c73ffe f634f76d2350d247b95f9d1abd0525e198828de1848cd37c6c96e97f64f90915 d2000d68ea0e52e888307f9bb54668206d4627217ee5033a389422a8a95dca9e 0f590bff878daf6c15b1f89d30475d1d42ab0949ed97190c39abe0f757b5824a 672958469e25cfed91e7b9d30a2770d26ef1cda18f731bf2df7c9d390e371cff 67b243cd7ecfc01345867641c0ec7342d41bbbb6089174f1551c10c323270ab8 08646e57a48a936884929212a11cad4b8bb4c43ff9193a2ff4ebaa6f573f87de 9c970bf4c5bea3fb280ff1b64b2e0312c742f8b44b67433e49b4984ed918dbf3 4f3d02e2e80ad3ed7a13bdff9e7cde99b45cd3af4f4e384a20e4336179f8e255 d8a5be5beca5d896cb295f21a6e0dcd8fda15896050d01e5f704a1da5b5a1341 43ffa7fa7bfc7fecb358ff61259165b4bab04adf63e7b0b8a0659cf163b48dd4 6261c0c9dfcb523f2e95d9232d584f72a238a40694dd857b61b93d28131a394a bedf1677ce4678dfda5cacdf2f95089e14099c5ba3808c3a9bedfb89a46cf850 4e95a24c822c2bc724847fde4d9ed80cc9c495ec0f6aee2727f074bc3f1833ba 2a6d8eefd7230e0a373ce16df3b18406333ced4581c0656392901e62d7dfba5e 68dc1c89a7d5f49ff50328ceb70b6ca330742cf674163158a140c7bc442a1f92 61f2262215360170a93408ba735f5a3ab39b563caeb3cd01c3aee43b855860e9 6058e626be3812bcf6be92eaa889355443d712024c3abe2683d1df77ff656bf9 2d205285e12fa50a6431396ff8b109e7c6d4ead3c0299d 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 2540 2540 (master.dvi) @start /Fa 130[131 1[131 131 131 131 131 131 131 131 131 131 1[131 131 131 131 131 2[131 131 1[131 131 131 131 131 131 1[131 1[131 1[131 5[131 131 131 131 2[131 131 1[131 2[131 2[131 131 1[131 5[131 131 131 9[131 131 131 131 2[131 131 131 131 6[131 33[{}50 246.022 /CMTT8 rf /Fb 198[93 93 93 93 93 93 93 93 93 93 48[{}10 175.73 /CMTT8 rf /Fc 173[228 82[{}1 316.314 /MSBM10 rf /Fd 135[150 1[150 168 117 125 111 1[168 163 168 258 78 159 1[78 168 163 99 144 168 144 1[156 11[224 8[177 30[108 45[{}23 316.314 /CMSS9 rf /Fe 134[158 158 1[158 177 128 133 118 1[177 174 177 274 81 168 1[81 177 174 106 162 177 155 177 166 11[242 1[193 6[184 6[203 23[116 45[{}27 316.314 /CMSSBX10 rf /Ff 139[122 154 6[94 2[112 5[168 1[187 23[149 73[{}7 316.314 /CMBXTI10 rf /Fg 201[146 1[146 146 146 50[{}4 210.876 /CMBX6 rf /Fh 134[158 158 216 158 166 116 118 116 158 166 149 166 249 83 158 1[83 166 149 91 133 166 133 166 149 12[216 2[232 1[232 224 4[108 2[195 2[216 1[224 6[83 149 149 149 149 149 149 149 149 149 149 1[83 100 83 4[83 26[166 12[{}48 281.168 /CMR8 rf /Fi 134[149 149 149 149 149 149 149 149 1[149 149 149 149 149 1[149 149 149 149 149 149 149 149 149 149 1[149 32[149 149 149 1[149 2[149 149 149 149 149 149 149 149 149 149 4[149 149 40[{}40 281.168 /CMTT8 rf /Fj 136[249 182 191 134 136 142 2[172 191 287 96 182 1[96 191 172 105 158 191 153 191 167 97[{}20 281.168 /CMBX8 rf /Fk 82[129 51[172 2[172 193 107 150 150 1[193 193 193 279 107 2[107 193 193 107 172 193 172 1[193 9[322 1[279 215 193 236 1[236 3[215 2[129 3[236 279 258 1[236 11[193 193 193 193 193 2[97 43[193 2[{TeXBase1Encoding ReEncodeFont}39 386.606 /Times-Italic rf /Fl 138[194 2[190 12[176 198 32[249 67[{}5 316.314 /CMCSC10 rf /Fm 145[162 3[108 94 4[135 15[154 5[204 245 64[147 12[{}8 210.876 /CMMI6 rf /Fn 200[120 55[{}1 175.73 /CMR5 rf /Fo 130[142 142 142 142 33[470 7[343 60[239 239 18[{}8 316.314 /CMEX10 rf /Fp 130[166 1[166 2[166 166 1[166 166 166 166 1[166 166 166 166 166 166 1[166 166 166 166 166 166 166 1[166 11[166 6[166 1[166 8[166 4[166 166 166 166 166 7[166 166 166 166 1[166 2[166 166 166 6[166 33[{}40 316.314 /CMITT10 rf /Fq 134[160 184 5[147 3[196 4[111 4[168 3[134 6[189 8[208 2[314 221 13[253 163 253 90 90 35[196 190 8[183 12[{}19 316.314 /CMMI9 rf /Fr 148[163 90 126 126 163 163 33[251 17[217 8[325 15[253 9[163 12[253 1[253{}13 316.314 /CMSY9 rf /Fs 175[172 3[156 2[94 4[203 16[141 2[141 3[70 4[94 39[{TeXBase1Encoding ReEncodeFont}8 281.168 /Times-Italic rf /Ft 82[94 22[141 28[141 1[203 141 141 78 109 94 141 141 141 141 219 78 141 1[78 141 141 94 125 141 125 141 125 11[203 172 156 2[156 2[250 2[109 5[203 188 1[203 7[141 141 1[141 141 1[141 141 141 141 78 70 1[70 41[156 2[{TeXBase1Encoding ReEncodeFont}46 281.168 /Times-Roman rf /Fu 133[133 158 150 216 149 174 108 133 137 1[166 166 183 266 83 149 1[100 166 149 100 149 166 149 149 166 8[241 324 1[241 232 183 237 1[220 249 241 291 204 1[170 125 1[251 212 220 245 232 229 241 6[100 166 166 166 166 166 166 166 166 166 166 1[100 116 3[133 133 100 249 23[286 1[183 12[{}63 316.314 /CMTI9 rf /Fv 134[198 198 270 198 208 146 148 154 1[208 187 208 312 104 198 1[104 208 187 114 172 208 166 208 182 12[260 208 280 281 256 281 292 355 3[141 2[235 246 1[270 1[282 5[104 104 187 1[187 187 187 187 187 187 187 187 1[104 125 104 31[208 12[{}51 316.314 /CMBX9 rf /Fw 128[163 163 1[325 163 144 172 172 235 172 181 126 128 127 172 181 163 181 271 90 172 99 90 181 163 99 145 181 144 181 163 3[90 163 90 199 244 244 334 244 244 235 181 239 253 221 253 244 298 203 253 167 117 244 255 212 221 248 235 230 244 1[154 1[253 1[90 90 163 163 163 163 163 163 163 163 163 163 163 90 108 90 253 1[126 126 90 1[271 163 1[163 17[90 1[271 181 181 190 11[{}89 316.314 /CMR9 rf /Fx 134[211 1[305 1[234 140 164 187 1[234 211 234 351 117 234 140 117 234 211 140 187 234 187 234 211 7[305 305 422 305 305 281 234 305 1[258 328 305 398 281 328 1[164 1[328 258 281 305 305 281 305 9[211 211 211 211 211 211 211 2[105 46[{TeXBase1Encoding ReEncodeFont}52 421.752 /Times-Bold rf /Fy 82[117 51[176 2[176 195 98 176 117 1[195 195 195 293 78 176 1[78 1[195 98 195 195 176 1[195 11[254 1[234 13[234 254 254 234 234 7[195 1[195 195 1[195 1[195 195 195 3[98 44[{TeXBase1Encoding ReEncodeFont}35 351.46 /Helvetica rf /Fz 129[129 64[197 3[129 2[129 129 129 129 129 129 129 3[74 44[{}11 210.876 /CMR6 rf /FA 130[166 1[166 166 166 166 166 166 166 166 166 166 1[166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 1[166 1[166 1[166 6[166 4[166 166 4[166 2[166 166 1[166 2[166 1[166 166 166 166 166 166 3[166 1[166 166 166 166 166 166 166 1[166 1[166 166 40[{}55 316.314 /CMTT9 rf /FB 135[211 3[117 1[140 2[234 234 1[94 211 1[94 234 234 1[234 234 211 234 234 6[258 1[281 10[351 234 1[211 117 6[281 281 18[117 46[{TeXBase1Encoding ReEncodeFont}24 421.752 /Helvetica rf /FC 133[121 121 117[135 2[203{}4 210.876 /CMSY6 rf /FD 137[352 387 211 352 246 1[387 387 387 562 176 2[176 1[387 1[352 3[352 13[422 457 1[422 6[176 6[457 66[{TeXBase1Encoding ReEncodeFont}19 632.628 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 2540dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 1454 456 a FD(Bug)174 b(Isolation)g(via)h(Remote)g(Pr)-13 b(ogram)175 b(Sampling)14976 322 y FC(\003)3238 1912 y FB(Ben)119 b(Lib)-8 b(lit)5082 1778 y FC(y)2219 2281 y FA(<)18 b(liblit@cs.berkeley.edu>)11087 1912 y FB(Ale)-13 b(x)118 b(Aik)-8 b(en)13175 1778 y FC(y)10273 2281 y FA(<)18 b(aiken@cs.berkeley.edu>)2730 2903 y FB(Alice)117 b(X.)h(Zheng)5590 2769 y FC(y)2219 3272 y FA(<)18 b (alicez@cs.berkeley.edu>)10325 2903 y FB(Michael)118 b(I.)g(Jordan)13654 2769 y FC(y)p Fz(,)88 b FC(z)10190 3272 y FA(<)18 b(jordan@cs.berkeley.edu>)3435 3741 y FC(y)3574 3875 y Fy(Depar)c(tment)99 b(of)f(Electr)5 b(ical)98 b(Engineer)5 b(ing)101 b(and)e(Computer)g(Science)6273 4132 y FC(z)6412 4266 y Fy(Depar)14 b(tment)98 b(of)g(Statistics)5685 4635 y(Univ)-9 b(ersity)98 b(of)g(Calif)-11 b(or)9 b(nia,)99 b(Ber)5 b(k)-7 b(ele)g(y)6225 5004 y(Ber)5 b(k)-7 b(ele)g(y)-35 b(,)98 b(CA)g(94720\2551776)-642 6278 y Fx(ABSTRA)-23 b(CT)-642 6787 y Fw(W)c(e)77 b(prop)9 b(ose)75 b(a)i(lo)-9 b(w-o)g(v)g(erhead)75 b(sampling)h(infrastructure)i(for)f(gath-)-642 7156 y(ering)92 b(information)g(from)h(the)g(executions)f(exp)9 b(erienced)91 b(b)-9 b(y)92 b(a)g(pro-)-642 7525 y(gram's)110 b(user)g(comm)-9 b(unit)g(y)-27 b(.)151 b(Sev)-9 b(eral)109 b(example)g(applications)h(illus-)-642 7894 y(trate)120 b(w)-9 b(a)g(ys)120 b(to)g(use)g(sampled)f(instrumen)-9 b(tation)120 b(to)g(isolate)h(bugs.)-642 8263 y(Assertion-dense)i(co)9 b(de)124 b(can)h(b)9 b(e)124 b(transformed)f(to)i(share)f(the)g(cost) -642 8632 y(of)118 b(assertions)h(among)e(man)-9 b(y)117 b(users.)176 b(Lac)-9 b(king)118 b(assertions,)j(broad)-642 9001 y(guesses)99 b(can)h(b)9 b(e)100 b(made)f(ab)9 b(out)99 b(predicates)h(that)g(predict)g(program)-642 9370 y(errors)157 b(and)f(a)h(pro)9 b(cess)157 b(of)g(elimination)f(used)h(to)g(whittle)g (these)-642 9740 y(do)-9 b(wn)135 b(to)i(the)f(true)g(bug.)228 b(Finally)-27 b(,)144 b(ev)-9 b(en)135 b(for)i(non-deterministic)-642 10109 y(bugs)96 b(suc)-9 b(h)97 b(as)g(memory)f(corruption,)j (statistical)h(mo)9 b(deling)95 b(based)-642 10478 y(on)77 b(logistic)j(regression)d(allo)-9 b(ws)78 b(us)g(to)h(iden)-9 b(tify)78 b(program)f(b)9 b(eha)-9 b(viors)-642 10847 y(that)138 b(are)f(strongly)g(correlated)g(with)h(failure)g(and)f(are)g (therefore)-642 11216 y(lik)-9 b(ely)108 b(places)g(to)g(lo)9 b(ok)108 b(for)g(the)g(error.)-642 12343 y Fx(Categories)e(and)g (Subject)j(Descriptors)-642 12852 y Fw(D.2.5)116 b([)p Fv(Soft)-10 b(w)g(are)133 b(Engineering)5 b Fw(]:)160 b(T)-27 b(esting)115 b(and)g(Debugging|)-642 13221 y Fu(distribute)-17 b(d)89 b(debugging)28 b Fw(;)91 b(G.3)79 b([)p Fv(Mathematics)90 b(of)h(Computing)5 b Fw(]:)-642 13591 y(Probabilit)-9 b(y)107 b(and)g(Statistics|)p Fu(c)-17 b(orr)g(elation)118 b(and)e(r)-17 b(e)g(gr)g(ession)116 b(anal-)-642 13960 y(ysis)26 b Fw(;)103 b(I.5.2)g([)p Fv(P)-10 b(attern)117 b(Recognition)p Fw(]:)142 b(Design)102 b(Metho)9 b(dology|)-642 14329 y Fu(fe)-17 b(atur)g(e)117 b(evaluation)f(and)g(sele)-17 b(ction)-642 15456 y Fx(General)107 b(T)-39 b(erms)-642 15965 y Fw(Exp)9 b(erimen)-9 b(tation,)107 b(P)-9 b(erformance,)108 b(Reliabilit)-9 b(y)p -642 16504 3374 15 v -632 16693 a FC(\003)-480 16828 y Fw(This)199 b(researc)-9 b(h)197 b(w)-9 b(as)198 b(supp)9 b(orted)197 b(in)h(part)g(b)-9 b(y)197 b(NASA)g(Gran)-9 b(t)-642 17144 y(No.)320 b(NA)-9 b(G2-1210;)194 b(NSF)167 b(Gran)-9 b(t)167 b(Nos.)320 b(EIA-9802069,)180 b(CCR-)-642 17460 y(0085949,)121 b(A)-9 b(CI-9619020,)121 b(and)e(I)9 b(IS-9988642;)125 b(DOE)c(Prime)g(Con-)-642 17777 y(tract)151 b(No.)267 b(W-7405-ENG-48)149 b(through)f(Memorandum)f(Agree-)-642 18093 y(men)-9 b(t)126 b(No.)198 b(B504962)123 b(with)k(LLNL;)g(and)e (a)g(Lucen)-9 b(t)127 b(GRPW)g(F)-27 b(el-)-642 18409 y(lo)-9 b(wship.)142 b(The)103 b(information)g(presen)-9 b(ted)102 b(here)g(do)9 b(es)103 b(not)g(necessar-)-642 18726 y(ily)k(re\015ect)g(the)f(p)9 b(osition)106 b(or)h(the)f(p)9 b(olicy)107 b(of)g(the)f(Go)-9 b(v)g(ernmen)g(t)105 b(and)-642 19042 y(no)i(o\016cial)i(endorsemen)-9 b(t)106 b(should)h(b)9 b(e)108 b(inferred.)-642 20628 y Ft(Permission)c(to)g(mak)m(e)f (digital)h(or)g(hard)f(copies)g(of)h(all)g(or)f(part)h(of)f(this)i(w)m (ork)e(for)-642 20945 y(personal)91 b(or)h(classroom)g(use)h(is)g (granted)e(without)h(fee)h(pro)l(vided)d(that)i(copies)h(are)-642 21261 y(not)77 b(made)g(or)g(distrib)-6 b(uted)77 b(for)g(pro\002t)h (or)f(commercial)f(adv)-7 b(antage)76 b(and)h(that)h(copies)-642 21577 y(bear)68 b(this)h(notice)e(and)h(the)g(full)h(citation)f(on)g (the)g(\002rst)h(page.)101 b(T)-22 b(o)67 b(cop)m(y)h(otherwise,)g(to) -642 21893 y(republish,)c(to)h(post)f(on)f(serv)l(ers)h(or)g(to)g (redistrib)-6 b(ute)63 b(to)i(lists,)i(requires)c(prior)g(speci\002c) -642 22210 y(permission)69 b(and/or)g(a)h(fee.)-642 22526 y Fs(PLDI'03,)f Ft(June)h(9\22611,)f(2003,)g(San)h(Die)l(go,)f (California,)g(USA.)-642 22842 y(Cop)m(yright)f(2003)g(A)-11 b(CM)70 b(1\25558113\255662\2555/03/0006)63 b(...)p Fw($)p Ft(5.00.)8636 6278 y Fx(K)-11 b(eyw)l(ords)8636 6787 y Fw(bug)155 b(isolation,)168 b(random)154 b(sampling,)168 b(assertions,)g(feature)155 b(selec-)8636 7156 y(tion,)109 b(statistical)i(debugging,)105 b(logistic)110 b(regression)8636 7979 y Fx(1.)422 b(INTR)-13 b(ODUCTION)8953 8436 y Fw(It)96 b(is)g(an)e(unfortunate)g(fact)j(that)e(essen)-9 b(tially)95 b(all)h(deplo)-9 b(y)g(ed)93 b(soft-)8636 8805 y(w)-9 b(are)169 b(systems)g(ha)-9 b(v)g(e)167 b(bugs,)184 b(and)168 b(that)h(users)g(often)g(encoun)-9 b(ter)8636 9174 y(these)154 b(bugs.)279 b(The)153 b(resources)g(\(measured)f(in)i(time,)165 b(money)-27 b(,)164 b(or)8636 9543 y(p)9 b(eople\))104 b(a)-9 b(v)-18 b(ailable)103 b(for)i(impro)-9 b(ving)103 b(soft)-9 b(w)g(are)105 b(are)f(alw)-9 b(a)g(ys)104 b(limited,)8636 9912 y(and)98 b(the)h(normal)f(case)h(is)g(that)g(through)e(sheer)i(n) -9 b(um)g(b)9 b(ers)97 b(the)i(user)8636 10281 y(comm)-9 b(unit)g(y)136 b(brings)g(far)g(more)f(resources)h(to)g(b)9 b(ear)135 b(on)h(testing)g(a)8636 10650 y(piece)k(of)g(soft)-9 b(w)g(are)140 b(than)f(the)g(team)h(resp)9 b(onsible)139 b(for)h(pro)9 b(ducing)8636 11019 y(that)109 b(soft)-9 b(w)g(are.)8953 11388 y(This)81 b(pap)9 b(er)80 b(is)h(ab)9 b(out)80 b(making)g(lemonade)f(from)i(lemons.)135 b(Giv)-9 b(en)8636 11757 y(that)104 b(deplo)-9 b(y)g(ed)101 b(soft)-9 b(w)g(are)103 b(has)f(problems,)i(p)9 b(erhaps)102 b(w)-9 b(e)103 b(can)g(sp)9 b(eed)8636 12126 y(up)85 b(the)h(pro)9 b(cess)86 b(of)f(iden)-9 b(tifying)85 b(and)g(eliminating)g(those)g (problems)8636 12495 y(b)-9 b(y)141 b(learning)f(something)g(from)i (the)f(enormous)e(n)-9 b(um)g(b)9 b(er)140 b(of)h(exe-)8636 12864 y(cutions)k(p)9 b(erformed)143 b(b)-9 b(y)143 b(the)h(soft)-9 b(w)g(are's)145 b(user)f(comm)-9 b(unit)g(y)-27 b(.)252 b(W)-27 b(e)8636 13233 y(prop)9 b(ose)172 b(an)g(infrastructure)h (where)f(some)g(information)h(ab)9 b(out)8636 13602 y(eac)-9 b(h)96 b(user)g(execution)g(of)g(a)g(program)g(is)h(transmitted)g(to)f (a)g(cen)-9 b(tral)8636 13971 y(database.)136 b(The)86 b(data)f(gathered)g(from)h(all)h(executions)e(is)i(analyzed)8636 14340 y(to)77 b(extract)g(information)f(that)g(helps)g(engineers)f (\014nd)g(and)g(\014x)h(prob-)8636 14709 y(lems)119 b(more)f(quic)-9 b(kly;)123 b(w)-9 b(e)118 b(call)i(this)f Fu(automatic)125 b(bug)i(isolation)p Fw(.)174 b(In)8636 15078 y(our)108 b(view,)g(suc)-9 b(h)108 b(an)g(infrastructure)h(has)f(sev)-9 b(eral)107 b(b)9 b(ene\014ts:)9107 15658 y Fr(\017)157 b Fw(F)-27 b(or)127 b(deplo)-9 b(y)g(ed)124 b(soft)-9 b(w)g(are)127 b(systems,)132 b(the)126 b(n)-9 b(um)g(b)9 b(er)125 b(of)i(execu-)9427 16027 y(tions)148 b(in)f(actual)g(use)g(dw) -9 b(arfs)147 b(the)g(n)-9 b(um)g(b)9 b(er)145 b(of)i(executions)9427 16396 y(pro)9 b(duced)91 b(in)i(testing)f(b)-9 b(y)92 b(orders)g(of)h(magnitude.)137 b(F)-27 b(or)93 b(man)-9 b(y)9427 16765 y(soft)g(w)g(are)114 b(systems)h(to)9 b(da)-9 b(y)-27 b(,)116 b(essen)-9 b(tially)114 b(all)h(of)f(the)h (informa-)9427 17135 y(tion)128 b(from)h(user)f(executions)f(is)i (discarded,)k(b)9 b(ecause)127 b(there)9427 17504 y(is)109 b(no)f(mec)-9 b(hanism)108 b(for)g(feedbac)-9 b(k.)144 b(Retaining)108 b(ev)-9 b(en)107 b(a)h(small)9427 17873 y(p)9 b(ortion)108 b(of)g(that)g(information)g(could)g(b)9 b(e)108 b(v)-18 b(aluable.)9107 18474 y Fr(\017)157 b Fw(Gathering)c(information)g(from)h(all,)165 b(or)154 b(at)g(least)g(a)f(repre-)9427 18843 y(sen)-9 b(tativ)g(e)111 b(sample,)g(of)g(user)g(executions)f(giv)-9 b(es)110 b(an)h(accurate)9427 19212 y(picture)120 b(of)g(ho)-9 b(w)119 b(the)h(soft)-9 b(w)g(are)120 b(is)g(actually)g(used,)j(allo)-9 b(wing)9427 19581 y(b)9 b(etter)128 b(decisions)f(ab)9 b(out)126 b(ho)-9 b(w)127 b(to)g(sp)9 b(end)127 b(scarce)h(resources) 9427 19950 y(on)76 b(mo)9 b(di\014cations.)133 b(In)77 b(particular,)83 b(bugs)76 b(that)g(a\013ect)g(a)g(large)9427 20319 y(n)-9 b(um)g(b)9 b(er)126 b(of)i(users)g(are)f(a)g(higher)g (priorit)-9 b(y)128 b(than)f(bugs)f(that)9427 20688 y(are)121 b(v)-9 b(ery)120 b(rare.)182 b(This)121 b(kind)f(of)h(information)f(is) i(almost)f(im-)9427 21057 y(p)9 b(ossible)154 b(to)h(obtain)e(from)i (an)-9 b(ywhere)152 b(other)i(than)g(actual)9427 21426 y(user)108 b(executions.)9107 22027 y Fr(\017)157 b Fw(While)73 b(our)f(primary)h(in)-9 b(terest)73 b(is)g(in)g(\014nding)f(and)f (\014xing)h(qual-)9427 22396 y(it)-9 b(y)144 b(problems,)153 b(information)143 b(gathered)f(from)i(user)f(execu-)9427 22765 y(tions)g(could)f(b)9 b(e)142 b(useful)g(for)g(other)g(purp)9 b(oses.)246 b(F)-27 b(or)142 b(exam-)p eop %%Page: 2 2 2 1 bop 149 -291 a Fw(ple,)111 b(soft)-9 b(w)g(are)111 b(authors)f(ma)-9 b(y)110 b(simply)h(wish)g(to)h(kno)-9 b(w)109 b(whic)-9 b(h)149 78 y(features)138 b(are)h(most)g(commonly)f (used,)147 b(or)138 b(w)-9 b(e)139 b(ma)-9 b(y)138 b(b)9 b(e)139 b(in-)149 447 y(terested)147 b(in)h(disco)-9 b(v)g(ering)147 b(whether)g(co)9 b(de)147 b(not)g(co)-9 b(v)g(ered)147 b(b)-9 b(y)149 816 y(in-house)107 b(testing)h(is)h(ev)-9 b(er)108 b(executed)f(in)h(practice,)h(etc.)-172 1500 y Fr(\017)158 b Fw(T)-27 b(raditional)140 b(user)h(feedbac)-9 b(k)139 b(ab)9 b(out)140 b(problems)g(often)h(con-)149 1869 y(sists)103 b(of)g(a)f(call)h(from)f(a)g(relativ)-9 b(ely)101 b(unsophisticated)h(user)g(to)149 2238 y(a)138 b(p)9 b(erhaps)138 b(only)g(somewhat)g(more)g(sophisticated)i(tec)-9 b(hni-)149 2607 y(cal)112 b(supp)9 b(ort)111 b(cen)-9 b(ter.)156 b(In)112 b(a)f(net)-9 b(w)g(ork)g(ed)110 b(w)-9 b(orld,)113 b(it)f(is)h(simply)149 2977 y(more)107 b(e\016cien)-9 b(t)108 b(and)f(accurate)h(to)h(gather)e(this)i(information)149 3346 y(automatically)-27 b(.)-172 4029 y Fr(\017)158 b Fw(Man)-9 b(y)96 b(bugs)h(sit)i(on)e(op)9 b(en)97 b(bug)f(lists)k(of) e(pro)9 b(ducts)97 b(for)h(an)f(ex-)149 4399 y(tended)83 b(p)9 b(erio)g(d)84 b(of)i(time)f(b)9 b(efore)84 b(an)g(engineer)g(is)h (a)-9 b(v)-18 b(ailable)84 b(to)149 4768 y(w)-9 b(ork)118 b(on)h(the)g(bug.)178 b(Automatically)119 b(gathering)f(data)h(from)149 5137 y(user)101 b(executions)f(allo)-9 b(ws)101 b(for)g(automated)f (analysis)g(without)149 5506 y(h)-9 b(uman)96 b(in)-9 b(terv)g(en)g(tion.)140 b(Th)-9 b(us,)99 b(when)e(an)g(engineer)f(is)i (\014nally)149 5875 y(a)-9 b(v)-18 b(ailable)142 b(to)i(w)-9 b(ork)144 b(on)f(a)h(problem,)152 b(the)144 b(results)h(of)f(auto-)149 6244 y(mated)93 b(analyses)g(done)f(in)j(the)e(in)-9 b(terim)95 b(ma)-9 b(y)93 b(help)h(the)f(engi-)149 6613 y(neer)83 b(to)h(iden)-9 b(tify)84 b(and)g(\014x)f(ev)-9 b(en)83 b(relativ)-9 b(ely)84 b(simple)g(problems)149 6982 y(more)107 b(quic)-9 b(kly)-27 b(.)-326 7635 y(The)145 b(idea)g(of)h(gathering)e(data)i(from)f(actual)h(user)g(executions)-642 8004 y(is)132 b(not)f(new.)212 b(Commercial)131 b(databases,)136 b(for)131 b(example,)136 b(routinely)-642 8373 y(pro)9 b(duce)106 b(extensiv)-9 b(e)106 b(log)h(\014les,)g(and)f(the)h (\014rst)h(action)f(when)f(a)h(user)-642 8742 y(rep)9 b(orts)130 b(a)g(problem)g(is)h(to)f(insp)9 b(ect)131 b(those)f(logs.)211 b(Similarly)-27 b(,)137 b(eac)-9 b(h)-642 9111 y(\015igh)g(t)89 b(of)h(the)f(Bo)9 b(eing)89 b(777)f(generates)h(logs)g(that)h(are)f(subsequen)-9 b(tly)-642 9480 y(com)g(b)9 b(ed)102 b(for)i(signs)g(of)f(p)9 b(ossible)103 b(problems)g([14].)143 b(There)102 b(are)h(man)-9 b(y)-642 9849 y(other)100 b(similar)h(examples)e(in)h(the)g(w)-9 b(orld)100 b(of)g(commercial)h(soft)-9 b(w)g(are.)-326 10218 y(A)100 b(more)g(recen)-9 b(t)100 b(dev)-9 b(elopmen)g(t)98 b(is)j(the)f(result)h(of)f(ubiquitous)g(In-)-642 10587 y(ternet)95 b(connectivit)-9 b(y)-27 b(.)140 b(Netscap)9 b(e/Mozilla,)98 b(Microsoft,)h(GNOME,)-642 10956 y(and)d(KDE)i(ha)-9 b(v)g(e)96 b(all)h(deplo)-9 b(y)g(ed)95 b(automated,)j(opt-in)g(crash)f (rep)9 b(ort-)-642 11325 y(ing)133 b(systems.)222 b(These)132 b(systems)j(gather)d(k)-9 b(ey)133 b(information)g(ab)9 b(out)-642 11694 y(program)104 b(state)i(after)g(a)g(failure)g(has)f(o) 9 b(ccurred:)143 b(stac)-9 b(k)106 b(trace,)h(reg-)-642 12063 y(ister)153 b(con)-9 b(ten)g(ts,)163 b(and)151 b(the)g(lik)-9 b(e.)276 b(By)151 b(sending)g(this)i(information)-642 12432 y(bac)-9 b(k)114 b(to)i(the)f(dev)-9 b(elopmen)g(t)113 b(organization,)j(the)f(user)g(comm)-9 b(unit)g(y)-642 12801 y(helps)140 b(dev)-9 b(elop)9 b(ers)140 b(e\013ectiv)-9 b(ely)140 b(triage)h(bugs)f(that)h(cause)g(crashes)-642 13170 y(and)107 b(fo)9 b(cus)109 b(on)e(the)h(problems)g(exp)9 b(erienced)106 b(b)-9 b(y)107 b(the)h(most)h(users.)-326 13539 y(W)-27 b(e)165 b(b)9 b(eliev)-9 b(e)164 b(crash)h(rep)9 b(orting)164 b(is)i(progress)e(in)i(the)e(righ)-9 b(t)166 b(di-)-642 13908 y(rection,)150 b(but)141 b(w)-9 b(e)141 b(also)g(b)9 b(eliev)-9 b(e)140 b(that)h(existing)h(approac)-9 b(hes)139 b(only)-642 14277 y(scratc)-9 b(h)107 b(the)e(surface)h(of)g (what)f(is)i(p)9 b(ossible)105 b(when)f(dev)-9 b(elop)9 b(ers)104 b(and)-642 14646 y(users)118 b(are)g(connected)f(b)-9 b(y)118 b(a)g(net)-9 b(w)g(ork.)173 b(F)-27 b(or)118 b(example,)i(the)e(crash-)-642 15015 y(rep)9 b(orting)77 b(systems)h(do)f(not)h(gather)f(an)-9 b(y)76 b(information)i(ab)9 b(out)77 b(what)-642 15384 y(happ)9 b(ened)93 b(b)9 b(efore)96 b(the)g(crash.)141 b(T)-27 b(race)96 b(information)g(leading)f(up)h(to) -642 15753 y(the)103 b(failure)h(ma)-9 b(y)103 b(con)-9 b(tain)104 b(critical)h(clues)g(to)e(the)h(actual)g(problem.)-642 16123 y(Also,)96 b(crash)c(rep)9 b(orting)92 b(systems)g(rep)9 b(ort)92 b(no)g(information)g(for)g(suc-)-642 16492 y(cessful)119 b(runs,)h(whic)-9 b(h)118 b(mak)-9 b(es)116 b(it)j(di\016cult)g(to)f (distinguish)f(anoma-)-642 16861 y(lous)85 b(\(crash-causing\))h(b)9 b(eha)-9 b(vior)84 b(from)i(inno)9 b(cuous)84 b(b)9 b(eha)-9 b(vior)84 b(com-)-642 17230 y(mon)105 b(to)i(all)g(executions.)143 b(In)106 b(general,)g(the)g(information)g(gathered)-642 17599 y(b)-9 b(y)89 b(crash-rep)9 b(orting)90 b(systems)g(is)h(not)f(v) -9 b(ery)89 b(systematic,)95 b(and)89 b(in)h(all)-642 17968 y(feedbac)-9 b(k)103 b(systems)i(of)f(whic)-9 b(h)105 b(w)-9 b(e)104 b(are)g(a)-9 b(w)g(are)103 b(\(crash-rep)9 b(orting)104 b(or)-642 18337 y(otherwise\))k(the)g(subsequen)-9 b(t)106 b(data)i(analysis)g(is)h(highly)e(man)-9 b(ual.)-326 18706 y(W)-27 b(e)121 b(presen)-9 b(t)121 b(one)f(approac)-9 b(h)120 b(to)h(systematically)h(gathering)e(in-)-642 19075 y(formation)84 b(ab)9 b(out)84 b(program)f(runs)i(from)g(a)f (large,)89 b(distributed)c(user)-642 19444 y(comm)-9 b(unit)g(y)135 b(and)f(p)9 b(erforming)135 b(subsequen)-9 b(t)133 b(automatic)j(analysis)-642 19813 y(of)c(that)g(information)f (to)h(help)g(in)g(isolating)g(bugs.)215 b(Initially)-27 b(,)139 b(w)-9 b(e)-642 20182 y(b)9 b(eliev)-9 b(ed)86 b(that)j(the)f(in)-9 b(teresting)88 b(problem)f(w)-9 b(as)88 b(the)f(analysis)h(of)g(the)-642 20551 y(data,)96 b(and)c(that)i(gathering)e(the)h(data)g(w)-9 b(as)93 b(relativ)-9 b(ely)93 b(straigh)-9 b(tfor-)-642 20920 y(w)g(ard.)195 b(Ho)-9 b(w)g(ev)g(er,)128 b(w)-9 b(e)125 b(disco)-9 b(v)g(ered)124 b(that)h(designing)f(a)h(data)f(gath-)-642 21289 y(ering)152 b(infrastructure)h(that)f(w)-9 b(ould)151 b(scale)i(is)g(non-trivial.)277 b(As)152 b(a)-642 21658 y(result,)145 b(this)138 b(pap)9 b(er)136 b(is)i(as)f(m)-9 b(uc)g(h)137 b(ab)9 b(out)136 b(the)h(design)f(and)g(imple-)-642 22027 y(men)-9 b(tation)150 b(of)i(the)f(system)g(that)h(gathers)e(the) h(data)g(from)g(user)-642 22396 y(executions)146 b(\(Section)i(2\))f (as)h(it)g(is)g(ab)9 b(out)146 b(the)h(subsequen)-9 b(t)146 b(data)-642 22765 y(analysis)108 b(\(Section)g(3\).)8953 -291 y(Our)73 b(infrastructure)h(is)g(designed)d(to)j(gather)e (information)h(ab)9 b(out)8636 78 y(a)91 b(large)f(n)-9 b(um)g(b)9 b(er)89 b(of)h(program)g(executions)f(taking)h(place)g (remotely)8636 447 y(from)102 b(a)f(cen)-9 b(tral)102 b(site)g(where)e(data)h(is)h(collected.)143 b(An)-9 b(y)100 b(suc)-9 b(h)102 b(design)8636 816 y(m)-9 b(ust)109 b(solv)-9 b(e)108 b(t)-9 b(w)g(o)108 b(problems.)8953 1185 y(The)154 b(\014rst)h(problem)e(is)j(that)e(the)h(metho)9 b(d)153 b(for)i(gathering)e(in-)8636 1555 y(formation)133 b(m)-9 b(ust)133 b(ha)-9 b(v)g(e)131 b(only)h(a)g(mo)9 b(dest)132 b(impact)h(on)f(the)h(p)9 b(erfor-)8636 1924 y(mance)138 b(of)h(the)g(user's)g(program.)234 b(Our)139 b(approac)-9 b(h,)145 b(discussed)139 b(in)8636 2293 y(Section)90 b(2,)k(is)d(based)e(on)g(sampling.)138 b(Classical)91 b(sampling)f(for)g(mea-)8636 2662 y(suring)142 b(program)e(p)9 b(erformance)140 b(searc)-9 b(hes)141 b(for)h(the)f(\\elephan)-9 b(t)140 b(in)8636 3031 y(the)154 b(ha)-9 b(ystac)g(k":)235 b(it)155 b(is)g(lo)9 b(oking)153 b(for)h(the)g(biggest)g(consumers)g (of)8636 3400 y(time.)259 b(In)146 b(con)-9 b(trast,)157 b(w)-9 b(e)145 b(are)h(lo)9 b(oking)144 b(for)j(needles)d(\(bugs\))i (that)8636 3769 y(ma)-9 b(y)116 b(o)9 b(ccur)118 b(v)-9 b(ery)116 b(rarely)-27 b(,)118 b(and)e(furthermore)g(our)g(sampling)g (rates)8636 4138 y(ma)-9 b(y)97 b(b)9 b(e)97 b(v)-9 b(ery)97 b(lo)-9 b(w)98 b(to)g(main)-9 b(tain)97 b(clien)-9 b(t)98 b(p)9 b(erformance.)140 b(This)98 b(leads)8636 4507 y(us)124 b(to)g(b)9 b(e)122 b(concerned)h(with)h(guaran)-9 b(teeing)120 b(that)k(the)f(sampling)g(is)8636 4876 y(statistically)81 b(fair,)86 b(so)78 b(that)h(w)-9 b(e)78 b(can)h(rely)f(on)g(the)h(rep)9 b(orted)78 b(frequen-)8636 5245 y(cies)104 b(of)f(rare)f(ev)-9 b(en)g(ts.)142 b(W)-27 b(e)103 b(also)g(dev)-9 b(elop)101 b(new)h(w)-9 b(a)g(ys)102 b(to)h(reduce)f(the)8636 5614 y(o)-9 b(v)g(erhead)131 b(of)i(the)f(necessary)g(additional)g(co)9 b(de)132 b(that)h(determines)8636 5983 y(whether)108 b(to)g(tak)-9 b(e)107 b(a)h(sample)g(or)g(not.)8953 6352 y(The)138 b(second)g(problem)g(is)i(that)f(information)g(from)g(the)g (clien)-9 b(t)8636 6721 y(m)g(ust)91 b(b)9 b(e)90 b(transmitted)g(o)-9 b(v)g(er)89 b(the)h(net)-9 b(w)g(ork)89 b(to)i(a)f(cen)-9 b(tral)90 b(database.)8636 7090 y(Gathering)135 b(ev)-9 b(en)134 b(a)i(relativ)-9 b(ely)135 b(small)h(amoun)-9 b(t)134 b(of)i(data)f(p)9 b(erio)g(di-)8636 7459 y(cally)110 b(from)f(a)g(large)f(n)-9 b(um)g(b)9 b(er)108 b(of)h(clien)-9 b(ts)110 b(creates)g(signi\014can)-9 b(t)109 b(scal-)8636 7828 y(abilit)-9 b(y)159 b(problems.)296 b(W)-27 b(e)158 b(ha)-9 b(v)g(e)157 b(found)h(it)i(necessary)e(to)h(discard)8636 8197 y(information)135 b(ab)9 b(out)135 b(the)g(order)g(in)h(whic)-9 b(h)135 b(program)f(statemen)-9 b(ts)8636 8566 y(execute)158 b(to)g(ac)-9 b(hiev)g(e)157 b(su\016cien)-9 b(tly)158 b(compact)h(represen)-9 b(tations)157 b(of)8636 8935 y(sampled)108 b(data)f(\(Section)i(2.5\).)8953 9304 y(Section)99 b(3)h(presen)-9 b(ts)99 b(three)h(applications)f(of)h(increasing)g (sophis-)8636 9673 y(tication:)9107 10417 y Fr(\017)157 b Fw(W)-27 b(e)116 b(sho)-9 b(w)116 b(ho)-9 b(w)115 b(to)h(share)g(the) g(cost)h(of)f(program)f(assertions)9427 10786 y(o)-9 b(v)g(er)142 b(a)h(large)g(user)g(base)f(through)g(sampling.)249 b(Eac)-9 b(h)143 b(user)9427 11155 y(only)158 b(executes)g(a)h (fraction)g(of)g(the)g(assertions,)172 b(and)158 b(th)-9 b(us)9427 11524 y(sees)105 b(go)9 b(o)g(d)104 b(p)9 b(erformance,)105 b(but)g(in)h(the)f(aggregate)e(bugs)i(due)9427 11893 y(to)e(assertion)f(failures)h(are)f(still)i(extremely)d(lik)-9 b(ely)102 b(to)h(b)9 b(e)102 b(de-)9427 12262 y(tected)109 b(\(Section)f(3.1\).)9107 12952 y Fr(\017)157 b Fw(W)-27 b(e)164 b(sho)-9 b(w)163 b(ho)-9 b(w)164 b(to)g(isolate)g Fu(deterministic)i(bugs)191 b Fw(without)9427 13321 y(the)128 b(b)9 b(ene\014t)126 b(of)h(explicit)i(assertions.)203 b(A)127 b(bug)g(is)h(determin-)9427 13690 y(istic)146 b(with)e(resp)9 b(ect)145 b(to)f(a)f(predicate)h Fq(P)189 b Fw(if)144 b(whenev)-9 b(er)142 b Fq(P)189 b Fw(is)9427 14059 y(true,)130 b(the)125 b(program)f(is)i(guaran)-9 b(teed)122 b(to)k(crash)f(at)g(some)g(fu-)9427 14428 y(ture)98 b(p)9 b(oin)-9 b(t.)141 b(An)98 b(initially)h(large)e(set)i (of)f(predicates)g(h)-9 b(yp)9 b(oth-)9427 14797 y(esized)138 b(to)g(capture)f(the)g(cause)h(of)g(the)f(crash)h(is)g(gradually)9427 15166 y(reduced)105 b(o)-9 b(v)g(er)106 b(time)g(as)h(sampled)e (executions)g(rev)-9 b(eal)106 b(whic)-9 b(h)9427 15535 y(predicates)108 b(predict)h(program)e(failure)h(\(Section)g(3.2\).) 9107 16225 y Fr(\017)157 b Fw(W)-27 b(e)149 b(generalize)f(our)h (approac)-9 b(h)147 b(to)j(the)f(isolation)g(of)g Fu(non-)9427 16594 y(deterministic)i(bugs)p Fw(.)264 b(A)147 b(bug)g(is)h (non-deterministic)g(with)9427 16963 y(resp)9 b(ect)125 b(to)g(a)g(set)g(of)g(program)f(predicates)g(if)i(it)g(is)f(not)g(de-) 9427 17332 y(terministic)139 b(for)f(an)-9 b(y)136 b(predicate)h(in)g (the)g(set)h(\(i.e.,)146 b(none)136 b(of)9427 17701 y(the)145 b(considered)f(predicates)g(p)9 b(erfectly)145 b(predicts)h(program) 9427 18070 y(crashes\).)249 b(W)-27 b(e)142 b(use)h(statistical)i (regression)d(tec)-9 b(hniques)141 b(to)9427 18439 y(iden)-9 b(tify)87 b(predicates)h(that)f(are)g(highly)f(correlated)h(with)h (pro-)9427 18808 y(gram)108 b(failure)g(\(Section)g(3.3\).)8953 19552 y(Finally)-27 b(,)124 b(monitoring)d(of)g(user)g(executions)f (raises)h(priv)-18 b(acy)121 b(and)8636 19921 y(securit)-9 b(y)97 b(concerns.)140 b(The)95 b(problems)g(are)g(b)9 b(oth)95 b(so)9 b(cial)96 b(and)f(tec)-9 b(hni-)8636 20290 y(cal;)109 b(a)f(discussion)h(of)f(these)g(issues)h(app)9 b(ears)106 b(in)j(Section)f(5.)8636 21201 y Fx(2.)422 b(SAMPLING)106 b(FRAMEW)l(ORK)8953 21658 y Fw(This)92 b(section)g(describ)9 b(es)92 b(our)g(sampling)f(framew)-9 b(ork.)138 b(W)-27 b(e)92 b(b)9 b(egin)8636 22027 y(with)151 b(sampling)e(of)h(basic)h(blo)9 b(c)-9 b(ks)150 b(and)f(gradually)f (add)h(features)8636 22396 y(un)-9 b(til)148 b(w)-9 b(e)147 b(can)h(describ)9 b(e)147 b(ho)-9 b(w)147 b(to)g(p)9 b(erform)147 b(sampling)g(for)h(en)-9 b(tire)8636 22765 y(programs.)144 b(Supp)9 b(ose)106 b(w)-9 b(e)108 b(start)h(with)g(the) f(follo)-9 b(wing)107 b(C)h(co)9 b(de:)p eop %%Page: 3 3 3 2 bop 149 -291 a FA({)784 78 y Fp(check\(p)166 b(!=)g(NULL\);)784 447 y FA(p)g(=)g(p->next;)784 1185 y Fp(check\(i)g(<)g(max\);)784 1555 y FA(total)g(+=)g(sizes[i];)149 1924 y(})-326 2598 y Fw(Our)106 b(sampling)g(framew)-9 b(ork)104 b(can)i(b)9 b(e)106 b(con\014gured)e(to)i(sample)g(ar-)-642 2967 y(bitrary)117 b(pieces)g(of)h(co)9 b(de,)119 b(whic)-9 b(h)117 b(ma)-9 b(y)116 b(b)9 b(e)117 b(either)g(p)9 b(ortions)117 b(of)g(the)-642 3336 y(original)101 b(program)g(or)h (instrumen)-9 b(tation)102 b(predicates)f(added)g(sepa-)-642 3705 y(rately)-27 b(.)249 b(F)-27 b(or)143 b(this)h(particular)f (example,)150 b(assume)143 b(that)g(the)g(ital-)-642 4074 y(icized)177 b Fp(check\(\))231 b Fw(calls)176 b(ha)-9 b(v)g(e)175 b(b)9 b(een)174 b(tagged)g(for)i(sampling.)346 b(A)-642 4444 y Fp(check\(\))158 b Fw(call)103 b(migh)-9 b(t)102 b(conditionally)g(halt)h(the)f(program)f(\(as)i(with)-642 4813 y FA(assert\(\))p Fw(\),)90 b(or)84 b(it)g(migh)-9 b(t)84 b(app)9 b(end)82 b(an)h(ev)-9 b(en)g(t)83 b(to)g(a)h(trace)g (stream,)89 b(or)-642 5182 y(it)96 b(migh)-9 b(t)96 b(up)9 b(date)94 b(a)i(p)9 b(er-predicate)95 b(coun)-9 b(ter)95 b(to)h(record)g(ho)-9 b(w)94 b(often)-642 5551 y(the)83 b(predicate)g(is)h(true.)136 b(The)82 b(precise)i(b)9 b(eha)-9 b(vior)81 b(of)i(the)g(instrumen-)-642 5920 y(tation)102 b(co)9 b(de)102 b(is)h(of)g(no)e(concern)h(to)h(the)f (sampling)g(transformation)-642 6289 y(itself.)-642 6935 y Fx(2.1)422 b(Sampling)107 b(the)g(Ber)-6 b(noulli)107 b(W)-27 b(ay)-326 7392 y Fw(Supp)9 b(ose)125 b(that)h(w)-9 b(e)126 b(wish)g(to)h(sample)e(one)h(h)-9 b(undredth)124 b(of)i(these)-642 7761 y(c)-9 b(hec)g(ks.)137 b(Main)-9 b(taining)84 b(a)h(global)g(coun)-9 b(ter)85 b(mo)9 b(dulo)84 b(one)g(h)-9 b(undred)83 b(is)-642 8130 y(simple,)104 b(but)f(has)f(the)g(disadv)-18 b(an)-9 b(tage)100 b(of)j(b)9 b(eing)102 b(trivially)h(p)9 b(erio)g(dic.)-642 8499 y(If)138 b(the)f(ab)9 b(o)-9 b(v)g(e)135 b(fragmen)-9 b(t)136 b(w)-9 b(ere)136 b(in)h(a)g(lo)9 b(op,)144 b(for)137 b(example,)143 b(one)136 b(of)-642 8868 y(the)82 b(c)-9 b(hec)g(ks)83 b(w)-9 b(ould)82 b(execute)g(on)g(ev)-9 b(ery)81 b(\014ftieth)i(iteration)g(while)f(the)-642 9237 y(other)91 b(w)-9 b(ould)92 b(nev)-9 b(er)90 b(execute.)139 b(W)-27 b(e)91 b(wish)i(sampling)e(to)h(b)9 b(e)92 b(fair)g(and)-642 9606 y(uniformly)104 b(random:)142 b(eac)-9 b(h)104 b(c)-9 b(hec)g(k)105 b(should)f(indep)9 b(enden)-9 b(tly)102 b(ha)-9 b(v)g(e)103 b(a)-642 9903 y Fz(1)-549 9975 y Fw(/)-18 b Fz(100)127 b Fw(c)-9 b(hance)128 b(of)h(b)9 b(eing)127 b(sampled)h(eac)-9 b(h)128 b(time)h(it)g(o)9 b(ccurs.)207 b(This)128 b(is)-642 10345 y(a)112 b(so-called)g Fu(Bernoul)17 b(li)119 b(pr)-17 b(o)g(c)g(ess)p Fw(,)115 b(the)d(most)h(common)e(example)g(of)-642 10714 y(whic)-9 b(h)90 b(is)i(rep)9 b(eatedly)88 b(tossing)j(a)f(coin.)139 b(W)-27 b(e)90 b(wish)h(to)f(sample)g(based)-642 11083 y(on)115 b(the)h(outcome)f(of)h(tossing)g(a)f(coin)h(that)h(is)f (biased)f(to)h(come)g(up)-642 11452 y(heads)107 b(only)g(one)g(time)i (in)f(a)g(h)-9 b(undred.)-326 11821 y(A)104 b(na)-36 b(\177)-126 b(\020v)-9 b(e)102 b(approac)-9 b(h)102 b(w)-9 b(ould)103 b(b)9 b(e)104 b(to)g(use)g(a)g(simple)g(random)e(n)-9 b(um-)-642 12190 y(b)9 b(er)90 b(generator.)137 b(Supp)9 b(ose)88 b FA(rnd\()p Fq(n)p FA(\))j Fw(yields)f(a)g(random)f(in)-9 b(teger)90 b(uni-)-642 12559 y(formly)101 b(distributed)g(b)9 b(et)-9 b(w)g(een)99 b(0)i(and)f Fq(n)58 b Fr(\000)f Fw(1.)142 b(Then)100 b(the)h(follo)-9 b(wing)-642 12928 y(co)9 b(de)108 b(giv)-9 b(es)107 b(us)h(fair)h(random)e(sampling)g(at) i(the)f(desired)f(densit)-9 b(y:)149 13603 y FA({)784 13972 y Fp(if\(rnd\(100\))166 b(==)h(0\))f(check\(p)g(!=)h(NULL\);)784 14341 y FA(p)f(=)g(p->next;)784 15079 y Fp(if\(rnd\(100\))g(==)h(0\))f (check\(i)g(<)g(max\);)784 15448 y FA(total)g(+=)g(sizes[i];)149 15817 y(})-326 16492 y Fw(This)82 b(strategy)f(has)g(some)g(practical)h (problems.)135 b(Random)80 b(n)-9 b(um-)-642 16861 y(b)9 b(er)132 b(generation)f(is)i(not)g(free:)193 b(tossing)133 b(the)g(coin)f(ma)-9 b(y)132 b(b)9 b(e)132 b(slo)-9 b(w)g(er)-642 17230 y(than)113 b(simply)h(doing)f(the)h(c)-9 b(hec)g(k)113 b(unconditionally)-27 b(.)161 b(F)-27 b(urthermore,)-642 17599 y(what)151 b(w)-9 b(as)152 b(previously)f(straigh)-9 b(t-line)153 b(co)9 b(de)151 b(is)i(no)-9 b(w)151 b(dense)g(with)-642 17968 y(branc)-9 b(hes)103 b(and)h(joins,)i(whic)-9 b(h)104 b(ma)-9 b(y)104 b(imp)9 b(ede)103 b(other)h(optimizations.)-326 18337 y(Sampling)80 b(is)i(sparse.)135 b(Eac)-9 b(h)81 b(of)g(the)g(conditionals)g(has)g(a)6706 18265 y Fz(99)6928 18337 y Fw(/)-18 b Fz(100)80 b Fw(=)-642 18706 y(99\045)j(c)-9 b(hance)83 b(of)g(not)g(sampling.)136 b(On)83 b(an)-9 b(y)83 b(run)g(through)f(this)i(blo)9 b(c)-9 b(k,)-642 19075 y(there)96 b(is)h(a)f(\()878 19003 y Fz(99)1100 19075 y Fq(=)-18 b Fz(100)o Fw(\))1757 18940 y Fz(2)1994 19075 y Fr(\031)91 b Fw(98\045)k(c)-9 b(hance)96 b(that)h(b)9 b(oth)96 b(instrumen)-9 b(tation)-642 19444 y(sites)135 b(are)e(skipp)9 b(ed.)221 b(If)135 b(w)-9 b(e)133 b(determine,)140 b(up)9 b(on)133 b(reac)-9 b(hing)133 b(the)g(top)-642 19813 y(of)110 b(a)f(basic)h(blo)9 b(c)-9 b(k,)111 b(that)f(no)f(site)h (in)g(that)g(blo)9 b(c)-9 b(k)110 b(is)g(sampled,)g(then)-642 20182 y(w)-9 b(e)152 b(can)h(branc)-9 b(h)153 b(in)-9 b(to)153 b(fast-path)g(co)9 b(de)153 b(with)g(all)g(conditionally-)-642 20551 y(guarded)119 b(c)-9 b(hec)g(ks)122 b(remo)-9 b(v)g(ed.)182 b(This)121 b(requires)g(t)-9 b(w)g(o)121 b(v)-9 b(ersions)121 b(of)g(the)-642 20920 y(co)9 b(de:)205 b(one)137 b(with)i(sampled)f (instrumen)-9 b(tation,)146 b(one)137 b(without.)236 b(It)-642 21289 y(also)95 b(requires)g(that)g(w)-9 b(e)95 b(can)g(predict)g(ho)-9 b(w)95 b(man)-9 b(y)94 b(future)h(sampling)-642 21658 y(opp)9 b(ortunities)107 b(are)h(skipp)9 b(ed)107 b(b)9 b(efore)107 b(the)h(next)g(one)f(is)i(tak)-9 b(en.)-326 22027 y(An)g(ticipating)97 b(future)g(samples)f(requires)g(a)g(c)-9 b(hange)95 b(in)i(random-)-642 22396 y(ization)116 b(strategy)-27 b(.)167 b(Consider)115 b(a)g(sequence)g(of)h(biased)e(coin)i(tosses,) -642 22765 y(with)156 b(\\0")f(indicating)i(no)e(sample)h(and)f(\\1")g (indicating)h(that)g(a)8636 -291 y(sample)104 b(is)h(to)g(b)9 b(e)104 b(tak)-9 b(en.)142 b(T)-27 b(emp)9 b(orarily)103 b(increasing)h(the)g(sampling)8636 78 y(densit)-9 b(y)108 b(to)10155 6 y Fz(1)10248 78 y Fw(/)-18 b Fz(5)p Fw(,)108 b(w)-9 b(e)108 b(migh)-9 b(t)108 b(ha)-9 b(v)g(e:)10158 634 y Fr(h)p Fw(0)p Fq(;)55 b Fw(0)p Fq(;)f Fw(0)p Fq(;)g Fw(0)p Fq(;)g Fw(0)p Fq(;)g Fw(1)10284 841 y Fo(|)p 10426 841 565 41 v 565 w({z)p 11275 841 V 565 w(})11069 1138 y Fz(6)11982 634 y Fq(;)h Fw(0)p Fq(;)f Fw(0)p Fq(;)g Fw(0)p Fq(;)g Fw(1)12127 841 y Fo(|)p 12269 841 258 41 v 258 w({z)p 12811 841 V 258 w(})12604 1138 y Fz(4)13210 634 y Fq(;)105 b Fw(0)p Fq(;)54 b Fw(1)13355 841 y Fo(|{z})13575 1138 y Fz(2)13924 634 y Fq(;)h Fw(0)p Fq(;)f Fw(0)p Fq(;)g Fw(1)14069 841 y Fo(|)p 14211 841 104 41 v 104 w({z)p 14599 841 V 104 w(})14393 1138 y Fz(3)14845 634 y Fq(;)h(:)f(:)h(:)f Fr(i)8953 1614 y Fw(An)102 b(equiv)-18 b(alen)-9 b(t)101 b(represen)-9 b(tation)101 b(coun)-9 b(ts)103 b(the)f(n)-9 b(um)g(b)9 b(er)101 b(of)i(tosses)8636 1983 y(un)-9 b(til)80 b(\(and)e(including\))g(the)h(next)f(sampled)g(c)-9 b(hec)g(k:)130 b Fr(h)p Fw(6)p Fq(;)54 b Fw(4)p Fq(;)g Fw(2)p Fq(;)g Fw(3)p Fq(;)g(:)h(:)f(:)h Fr(i)p Fw(.)8636 2352 y(This)121 b(represen)-9 b(tation)118 b(is)j(predictiv)-9 b(e:)168 b(the)120 b(head)f(of)h(the)g(sequence)8636 2721 y(can)110 b(b)9 b(e)110 b(treated)g(as)g(a)g(coun)-9 b(tdo)g(wn,)109 b(telling)h(us)h(ho)-9 b(w)109 b(far)h(a)-9 b(w)g(a)g(y)109 b(the)8636 3090 y(next)94 b(sample)f(is.)140 b(If)95 b(w)-9 b(e)93 b(are)h(at)f(the)h(top)g(of)f(a)h(basic)g(blo)9 b(c)-9 b(k)94 b(con)-9 b(tain-)8636 3459 y(ing)103 b(only)f(t)-9 b(w)g(o)103 b(c)-9 b(hec)g(ks,)105 b(and)d(the)h(next)f(sampling)g (coun)-9 b(tdo)g(wn)102 b(is)i(6,)8636 3829 y(w)-9 b(e)90 b(kno)-9 b(w)89 b(in)h(adv)-18 b(ance)88 b(that)i(neither)g(of)g(those) f(sites)j(is)e(sampled)f(on)8636 4198 y(this)84 b(visit.)137 b(Instead,)88 b(w)-9 b(e)83 b(merely)f(discard)h(t)-9 b(w)g(o)83 b(tosses)h(and)e(pro)9 b(ceed)8636 4567 y(directly)109 b(to)g(the)f(instrumen)-9 b(tation-free)107 b(fast)i(path:)9427 5137 y FA({)10062 5506 y Fp(if\(countdown)167 b(>)f(2\))g({)10697 5875 y(/*)g(fast)h(path:)332 b(no)166 b(sample)h(ahead)f(*/)10697 6245 y(countdown)h(-=)f(2;)10697 6614 y FA(p)g(=)g(p->next;)10697 6983 y(total)h(+=)f(sizes[i];)10062 7352 y Fp(})g(else)h({)10697 7721 y(/*)f(slow)h(path:)332 b(sample)167 b(is)f(imminent)g(*/)10697 8090 y(if\(countdown--)h(==)f(0\))h({)11332 8459 y(check\(p)g(!=)f (NULL\);)11332 8828 y(countdown)h(=)f(getNextCountdown\(\);)10697 9197 y(})10697 9566 y FA(p)g(=)g(p->next;)10697 10304 y Fp(if\(countdown--)h(==)f(0\))h({)11332 10673 y(check\(i)g(<)f (max\);)11332 11042 y(countdown)h(=)f(getNextCountdown\(\);)10697 11411 y(})10697 11780 y FA(total)h(+=)f(sizes[i];)10062 12149 y Fp(})9427 12518 y FA(})8953 13089 y Fw(The)146 b(instrumen)-9 b(ted)146 b(co)9 b(de)146 b(do)9 b(es)146 b(extra)h(w)-9 b(ork)146 b(to)h(manage)e(the)8636 13458 y(next-sample)76 b(coun)-9 b(tdo)g(wn,)81 b(but)76 b(the)g(fast)h(path) e(is)i(m)-9 b(uc)g(h)76 b(impro)-9 b(v)g(ed.)8636 13827 y(The)136 b(only)g(o)-9 b(v)g(erhead)134 b(is)j(a)g(single)f (compare/branc)-9 b(h)135 b(and)g(a)h(con-)8636 14196 y(stan)-9 b(t)150 b(decremen)-9 b(t,)158 b(and)148 b(this)h(o)-9 b(v)g(erhead)146 b(is)k(amortized)e(o)-9 b(v)g(er)148 b(the)8636 14565 y(en)-9 b(tire)153 b(blo)9 b(c)-9 b(k.)277 b(In)153 b(larger)f(blo)9 b(c)-9 b(ks)152 b(with)h(more)f(instrumen)-9 b(tation)8636 14934 y(sites,)173 b(the)158 b(initial)i(coun)-9 b(tdo)g(wn)156 b(c)-9 b(hec)g(k)159 b(has)f(a)g(larger)g(threshold,) 8636 15303 y(but)150 b(that)g(one)f(c)-9 b(hec)g(k)150 b(su\016ces)g(to)g(predict)h(a)e(larger)h(n)-9 b(um)g(b)9 b(er)149 b(of)8636 15672 y(skipp)9 b(ed)107 b(sampling)h(opp)9 b(ortunities.)8953 16041 y(Consider)142 b(the)i(distribution)g(of)f (coun)-9 b(tdo)g(wn)142 b(v)-18 b(alues.)250 b(With)144 b(a)8636 16410 y(sampling)78 b(densit)-9 b(y)77 b(of)11412 16338 y Fz(1)11505 16410 y Fw(/)-18 b Fz(100)o Fw(,)85 b(there)77 b(is)i(a)13550 16338 y Fz(1)13643 16410 y Fw(/)-18 b Fz(100)77 b Fw(c)-9 b(hance)78 b(that)g(w)-9 b(e)77 b(sam-)8636 16779 y(ple)92 b(at)f(the)g(v)-9 b(ery)91 b(next)g(opp)9 b(ortunit)-9 b(y)-27 b(.)137 b(There)91 b(is)h(a)f(\()14985 16707 y Fz(99)15207 16779 y Fq(=)-18 b Fz(100)o Fw(\))39 b Fr(\002)g Fw(\()16321 16707 y Fz(1)16414 16779 y Fq(=)-18 b Fz(100)o Fw(\))8636 17148 y(that)85 b(the)f(next)g(c)-9 b(hance)84 b(is)h(skipp)9 b(ed)83 b(but)h(that)g(the)h(one)e(after)h(that)h(is)8636 17517 y(tak)-9 b(en.)140 b(A)97 b(coun)-9 b(tdo)g(wn)96 b(of)h(three)f(app)9 b(ears)96 b(on)g(a)h(\()14816 17445 y Fz(99)15038 17517 y Fq(=)-18 b Fz(100)o Fw(\))15695 17383 y Fz(2)15892 17517 y Fr(\002)50 b Fw(\()16321 17445 y Fz(1)16414 17517 y Fq(=)-18 b Fz(100)o Fw(\))8636 17886 y(c)-9 b(hance,)153 b(and)143 b(so)h(on.)251 b(These)143 b(n)-9 b(um)g(b)9 b(ers)143 b(form)h(a)f Fu(ge)-17 b(ometric)150 b(dis-)8636 18255 y(tribution)161 b Fw(whose)135 b(mean)g(v)-18 b(alue)134 b(is)j(the)f(in)-9 b(v)g(erse)135 b(of)i(the)e(sampling)8636 18624 y(densit)-9 b(y)112 b(\(that)g(is,)i(100\).)154 b(Num)-9 b(b)9 b(ers)111 b(in)g(a)h(geometric)f(distribution)8636 18993 y(c)-9 b(haracterize)127 b(the)f(exp)9 b(ected)124 b(in)-9 b(ter-arriv)-18 b(al)126 b(times)h(of)f(a)g(Bernoulli)8636 19363 y(pro)9 b(cess.)209 b(Ho)-9 b(w)g(ev)g(er,)133 b(rep)9 b(eated)128 b(tossing)i(of)f(a)g(biased)g(coin)h(is)g(not)8636 19732 y(necessary:)216 b(geometrically)143 b(distributed)h(random)f(n) -9 b(um)g(b)9 b(ers)143 b(can)8636 20101 y(b)9 b(e)88 b(generated)e(directly)j(using)e(a)h(standard)f(uniform)h(random)e (gen-)8636 20470 y(erator)73 b(and)e(some)h(simple)h(\015oating-p)9 b(oin)-9 b(t)72 b(op)9 b(erations.)131 b(\(In)73 b(theory)-27 b(,)8636 20839 y(a)93 b(coun)-9 b(tdo)g(wn)92 b(ma)-9 b(y)93 b(need)e(to)j(b)9 b(e)93 b(arbitrarily)g(large.)139 b(Ho)-9 b(w)g(ev)g(er,)95 b(the)8636 21208 y(o)9 b(dds)135 b(of)g(a)10128 21136 y Fz(1)10220 21208 y Fw(/)-18 b Fz(100)135 b Fw(coun)-9 b(tdo)g(wn)133 b(exceeding)g(2)14219 21073 y Fz(32)14584 21208 y Fr(\000)90 b Fw(1)135 b(are)g(less)g(than) 8636 21658 y(one)108 b(in)g(10)9938 21524 y Fz(10)10196 21435 y Fn(7)10349 21658 y Fw(.\))8953 22027 y(As)c(can)f(b)9 b(e)103 b(seen)g(in)h(the)f(instrumen)-9 b(ted)103 b(slo)-9 b(w)104 b(path,)g(the)f(coun)-9 b(t-)8636 22396 y(do)g(wn)109 b(is)h(reset)f(once)g(it)i(reac)-9 b(hes)108 b(zero.)149 b(Th)-9 b(us,)109 b(w)-9 b(e)109 b(consume)g(next-)8636 22765 y(sample)114 b(coun)-9 b(tdo)g(wns)113 b(gradually)g(o)-9 b(v)g(er)113 b(time.)163 b(Ho)-9 b(w)g(ev)g(er,)115 b(the)f(rate)p eop %%Page: 4 4 4 3 bop -642 -291 a Fw(of)138 b(consumption)e(is)j(slo)-9 b(w)g(er)137 b(than)g(that)h(for)g(ra)-9 b(w)137 b(coin)h(tosses:)204 b Fq(n)-642 78 y Fw(coun)-9 b(tdo)g(wns)113 b(for)1640 6 y Fz(1)1733 78 y Fq(=)-18 b Fm(d)115 b Fw(sampling)f(enco)9 b(de,)115 b(on)f(a)-9 b(v)g(erage,)115 b Fq(nd)g Fw(tosses.)-642 447 y(A)100 b(bank)f(of)h(pre-generated)e(random)h(coun)-9 b(tdo)g(wns,)101 b(then,)g(is)g(quite)-642 816 y(reasonable)124 b(and)i(will)h(exhaust)e(or)i(rep)9 b(eat)125 b Fq(d)i Fw(times)g(more)f(slo)-9 b(wly)-642 1185 y(than)107 b(w)-9 b(ould)108 b(a)g(similar)h(bank)d(of)j(ra)-9 b(w)108 b(coin)g(tosses.)-642 1924 y Fx(2.2)422 b(Fr)-8 b(om)106 b(Blocks)g(to)g(Functions)-326 2380 y Fw(The)85 b(sc)-9 b(heme)84 b(for)i(blo)9 b(c)-9 b(ks)85 b(outlined)f(ab)9 b(o)-9 b(v)g(e)84 b(generalizes)g(to)h(an)g(ar-)-642 2749 y(bitrary)114 b(con)-9 b(trol)114 b(\015o)-9 b(w)114 b(graph)e(as)i(follo)-9 b(ws.)163 b(An)-9 b(y)113 b(region)h(of)g (acyclic)-642 3119 y(co)9 b(de)130 b(has)g(a)g(\014nite)g(n)-9 b(um)g(b)9 b(er)129 b(of)i(p)9 b(ossible)130 b(paths.)211 b(Let)131 b(the)f(maxi-)-642 3488 y(m)-9 b(um)122 b(n)-9 b(um)g(b)9 b(er)122 b(of)g(instrumen)-9 b(ted)122 b(sites)i(on)e(an)-9 b(y)122 b(path)g(b)9 b(e)122 b(the)h(re-)-642 3857 y(gion's)f Fu(weight)p Fw(.)189 b(A)123 b(coun)-9 b(tdo)g(wn)121 b(threshold)h(c)-9 b(hec)g(k)123 b(can)f(b)9 b(e)123 b(placed)-642 4226 y(at)112 b(the)f(top)h(of)g(eac)-9 b(h)111 b(acyclic)i(region.)154 b(If)113 b(the)e(next-sample)g(coun)-9 b(t-)-642 4595 y(do)g(wn)117 b(exceeds)g(the)h(w)-9 b(eigh)g(t)118 b(of)g(an)g(acyclic)i(region)d Fq(r)127 b Fw(on)118 b(en)-9 b(try)118 b(to)-642 4964 y Fq(r)9 b Fw(,)108 b(then)g(no)f(samples)h (are)g(tak)-9 b(en)107 b(on)h(that)g(execution)f(of)h Fq(r)9 b Fw(.)-326 5333 y(An)-9 b(y)143 b(cycle)h(in)g(a)g(con)-9 b(trol-\015o)g(w)143 b(graph)f(without)i(instrumen)-9 b(ta-)-642 5702 y(tion)121 b(is)h(w)-9 b(eigh)g(tless)121 b(and)g(ma)-9 b(y)120 b(b)9 b(e)121 b(disregarded.)182 b(An)-9 b(y)121 b(cycle)h(with)-642 6071 y(instrumen)-9 b(tation)102 b(m)-9 b(ust)104 b(also)e(con)-9 b(tain)103 b(a)g(threshold)f(c)-9 b(hec)g(k,)104 b(whic)-9 b(h)-642 6440 y(guaran)g(tees)124 b(that)j(if)g(w)-9 b(e)126 b(start)h(at)g(an) -9 b(y)125 b(threshold)h(c)-9 b(hec)g(k)126 b(and)f(ex-)-642 6809 y(ecute)c(forw)-9 b(ard,)123 b(w)-9 b(e)121 b(cross)g(only)f(a)h (\014nite)g(n)-9 b(um)g(b)9 b(er)119 b(of)i(instrumen-)-642 7178 y(tation)102 b(sites)h(b)9 b(efore)101 b(reac)-9 b(hing)101 b(the)g(next)h(threshold)f(c)-9 b(hec)g(k.)142 b(Th)-9 b(us,)-642 7547 y(w)g(e)108 b(can)g(compute)f(a)h(\014nite)g(w) -9 b(eigh)g(t)108 b(for)g(eac)-9 b(h)108 b(threshold)f(c)-9 b(hec)g(k.)-326 7916 y(There)86 b(is)h(some)f(\015exibilit)-9 b(y)87 b(regarding)e(exactly)h(where)g(a)g(thresh-)-642 8285 y(old)139 b(c)-9 b(hec)g(k)140 b(is)h(placed,)147 b(but)140 b(computing)f(an)g(optimal)h(solution)f(is)-642 8654 y(NP-hard)107 b([18].)145 b(F)-27 b(or)107 b(simplicit)-9 b(y)-27 b(,)110 b(our)d(presen)-9 b(t)107 b(system)h(places)g(one)-642 9023 y(threshold)127 b(c)-9 b(hec)g(k)128 b(at)g(function)g(en)-9 b(try)127 b(and)g(one)g(along)g(eac)-9 b(h)127 b(lo)9 b(op)-642 9392 y(bac)-9 b(k)128 b(edge.)203 b(W)-27 b(eigh)-9 b(ts)129 b(ma)-9 b(y)127 b(b)9 b(e)128 b(computed)f(in)i(a)f(single)g (b)9 b(ottom-)-642 9761 y(up)143 b(tra)-9 b(v)g(ersal)143 b(of)h(eac)-9 b(h)143 b(function's)i(con)-9 b(trol)144 b(\015o)-9 b(w)143 b(graph.)250 b(If)144 b(an)-9 b(y)-642 10130 y(threshold)142 b(c)-9 b(hec)g(k)142 b(is)i(found)d(to)i(ha)-9 b(v)g(e)141 b(zero)h(w)-9 b(eigh)g(t,)151 b(it)144 b(is)f(simply)-642 10499 y(discarded.)-326 10868 y(W)-27 b(e)157 b(pro)9 b(duce)157 b(t)-9 b(w)g(o)157 b(complete)g(copies)h(of)f(the)h (function)f(b)9 b(o)g(dy)-27 b(.)-642 11237 y(One)117 b(con)-9 b(tains)118 b(full)h(instrumen)-9 b(tation,)120 b(with)f(eac)-9 b(h)117 b(p)9 b(ossible)118 b(sam-)-642 11606 y(ple)160 b(guarded)f(b)-9 b(y)160 b(a)g(decremen)-9 b(t)160 b(and)g(test)i(of)f(the)f(next-sample)-642 11975 y(coun)-9 b(tdo)g(wn.)253 b(The)144 b(other)g(cop)-9 b(y)-27 b(,)153 b(the)145 b(fast)g(path,)154 b(merely)144 b(decre-)-642 12344 y(men)-9 b(ts)105 b(the)h(coun)-9 b(tdo)g(wn)104 b(where)g(appropriate,)h(but)g(otherwise)h(has)-642 12713 y(all)99 b(instrumen)-9 b(tation)98 b(remo)-9 b(v)g(ed.)139 b(W)-27 b(e)99 b(stitc)-9 b(h)100 b(the)e(t)-9 b(w)g(o)99 b(v)-18 b(arian)-9 b(ts)98 b(to-)-642 13082 y(gether)112 b(at)g(threshold)g(c)-9 b(hec)g(k)113 b(p)9 b(oin)-9 b(ts:)153 b(at)113 b(the)g(top)f(of)h(eac)-9 b(h)112 b(acyclic)-642 13451 y(region,)103 b(w)-9 b(e)103 b(decide)f(whether)g (a)g(sample)h(is)g(imminen)-9 b(t.)143 b(If)104 b(it)g(is,)h(w)-9 b(e)-642 13820 y(branc)g(h)93 b(in)-9 b(to)94 b(the)f(instrumen)-9 b(ted)93 b(co)9 b(de.)140 b(If)94 b(the)g(next)f(sample)g(is)i(far)-642 14189 y(o\013,)108 b(w)-9 b(e)107 b(con)-9 b(tin)g(ue)108 b(in)g(the)g(fast)h(path)f(co)9 b(de)107 b(instead.)-326 14559 y(Figure)121 b(1)f(sho)-9 b(ws)120 b(an)g(example)g(of)g(co)9 b(de)121 b(la)-9 b(y)g(out)120 b(for)g(a)h(function)-642 14928 y(con)-9 b(taining)99 b(one)g(conditional)g(and)g(one)g(lo)9 b(op.)141 b(Dotted)100 b(no)9 b(des)98 b(rep-)-642 15297 y(resen)-9 b(t)73 b(instrumen)-9 b(tation)74 b(sites;)86 b(these)74 b(are)f(reduced)g(to)h(coun)-9 b(tdo)g(wn)-642 15666 y(decremen)g(ts)154 b(in)h(the)g(fast)h(path.)285 b(The)154 b(b)9 b(o)-9 b(xed)153 b(no)9 b(des)154 b(represen)-9 b(t)-642 16035 y(threshold)116 b(c)-9 b(hec)g(ks;)122 b(w)-9 b(e)117 b(ha)-9 b(v)g(e)116 b(added)f(one)h(at)h(function)g(en) -9 b(try)117 b(and)-642 16404 y(one)96 b(along)g(the)h(bac)-9 b(k)97 b(edge)f(of)h(the)g(lo)9 b(op.)140 b(This)98 b(co)9 b(de)96 b(la)-9 b(y)g(out)97 b(strat-)-642 16773 y(egy)157 b(is)i(a)f(v)-18 b(ariation)157 b(on)h(that)g(used)f(b)-9 b(y)158 b(Arnold)f(and)g(Ryder)h(to)-642 17142 y(reduce)124 b(the)h(cost)h(of)g(co)9 b(de)124 b(instrumen)-9 b(ted)125 b(for)g(p)9 b(erformance)124 b(pro-)-642 17511 y(\014ling)107 b([2].)145 b(The)106 b(principal)i(c)-9 b(hange)106 b(in)h(our)g (transformation)g(is)h(the)-642 17880 y(use)114 b(of)h(geometrically)f (distributed)g(coun)-9 b(tdo)g(wns)114 b(in)g(conjunction)-642 18249 y(with)109 b(acyclic)h(region)e(w)-9 b(eigh)g(ts)108 b(to)h(c)-9 b(ho)9 b(ose)108 b(b)9 b(et)-9 b(w)g(een)107 b(the)h(t)-9 b(w)g(o)109 b(co)9 b(de)-642 18618 y(v)-18 b(arian)-9 b(ts.)136 b(Arnold)82 b(and)f(Ryder)h(use)h(\014xed)e (sampling)h(p)9 b(erio)g(ds)82 b(\(e.g.,)-642 18987 y(exactly)117 b(once)h(p)9 b(er)117 b Fq(n)h Fw(opp)9 b(ortunities,)120 b(or)e(exactly)g(once)f(p)9 b(er)117 b Fq(n)i Fw(in-)-642 19356 y(structions\))109 b(and)d(do)g(not)h(apply)e(region-sp)9 b(eci\014c)107 b(w)-9 b(eigh)g(ting.)143 b(Our)-642 19725 y(approac)-9 b(h)122 b(imp)9 b(oses)123 b(more)g(o)-9 b(v)g(erhead,)126 b(but)d(o\013ers)g(greater)g(statis-)-642 20094 y(tical)98 b(rigor)f(in)g(the)g(resultan)-9 b(t)97 b(sampled)f(data.)140 b(Arnold)97 b(and)f(Ryder)-642 20463 y(ha)-9 b(v)g(e)144 b(studied)h(sev)-9 b(eral)144 b(v)-18 b(ariations)145 b(with)h(di\013eren)-9 b(t)144 b(trade-o\013s)h(of)-642 20832 y(co)9 b(de)108 b(size)h(v)-9 b(ersus)107 b(o)-9 b(v)g(erhead;)106 b(the)i(same)g(c)-9 b(hoices)108 b(apply)g(here.)-642 21570 y Fx(2.3)422 b(Function)107 b(Calls)-326 22027 y Fw(New)140 b(optimization)h(opp)9 b(ortunities)140 b(arise)g(in)h(the)f(presence)g(of)-642 22396 y(function)112 b(calls.)157 b(A)112 b(conserv)-18 b(ativ)-9 b(e)111 b(treatmen)-9 b(t)112 b(assumes)g(an)-9 b(y)111 b(func-)-642 22765 y(tion)149 b(call)g(c)-9 b(hanges)147 b(the)i(coun)-9 b(tdo)g(wn)147 b(arbitrarily)-27 b(.)266 b(Therefore,)157 b(a)16009 1474 y @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 1596 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -45.41748 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 15835 3622 a @beginspecial @setspecial {-0.09242 -0.07106 l}xy @endspecial 14748 4385 a @beginspecial @setspecial {-303 10 /xy AB}xy @endspecial 3 x @beginspecial @setspecial {-31.01413 -21.8489 l}xy @endspecial -3 x @beginspecial @setspecial {-0.09242 0.0 l}xy @endspecial 16009 5510 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial -7861 x @beginspecial @setspecial {mark 0.0 -200.96118 -36.0 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 1.0 0.05469 bz}xy @endspecial 13177 3828 a @beginspecial @setspecial {-2876 10 /xy AB}xy @endspecial 16009 -537 a @beginspecial @setspecial {mark 0.0 -200.96118 -36.0 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 0.05469 0.91577 bz}xy @endspecial @beginspecial @setspecial {mark 0.0 -200.96118 -36.0 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 1.0 0.91583 bz}xy @endspecial 8065 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 15810 7605 a @beginspecial @setspecial {-0.13838 -0.02238 l}xy @endspecial 13250 8507 a @beginspecial @setspecial {-663 10 /xy AB}xy @endspecial @beginspecial @setspecial {-72.97865 -25.70142 l}xy @endspecial @beginspecial @setspecial {-0.01575 0.0 l}xy @endspecial 14577 4501 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 14752 4631 a @beginspecial @setspecial {0.1163 -0.0753 l}xy @endspecial 15838 5394 a @beginspecial @setspecial {2351 10 /xy AB}xy @endspecial 3 x @beginspecial @setspecial {31.01266 -21.85739 l}xy @endspecial -3 x @beginspecial @setspecial {0.1163 0.0 l}xy @endspecial 13145 -431 a @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 575 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.35437 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 328 x @beginspecial @setspecial {0.0 15.37842 -9.35439 -15.3784 9.35437 ov}xy @endspecial 12815 574 a Fq(>)90 b Fw(4?)13685 664 y @beginspecial @setspecial {0.00589 -0.05164 l}xy @endspecial 15810 1413 a @beginspecial @setspecial {2711 10 /xy AB}xy @endspecial 5 w @beginspecial @setspecial {60.60214 -21.35257 l}xy @endspecial -5 w @beginspecial @setspecial {0.0 -0.09671 l}xy @endspecial 12603 663 a @beginspecial @setspecial {-0.02577 0.0 l}xy @endspecial 10479 1413 a @beginspecial @setspecial {-663 10 /xy AB}xy @endspecial -5 w @beginspecial @setspecial {-60.60025 -21.33755 l}xy @endspecial 5 w @beginspecial @setspecial {0.0 -0.02238 l}xy @endspecial 13145 3499 a @beginspecial @setspecial {0.0 15.37842 -9.35439 -15.3784 9.35437 ov}xy @endspecial 12815 3601 a Fq(>)g Fw(3?)16009 -537 y @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -36.0 -86.12622 0.0 -86.12622 1.0 0.09766 bz}xy @endspecial 15799 2488 a @beginspecial @setspecial {3055 10 /xy AB}xy @endspecial 16009 -537 a @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -36.0 -86.12622 0.0 -86.12622 0.09766 0.94519 bz}xy @endspecial @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -36.0 -86.12622 0.0 -86.12622 1.0 0.94519 bz}xy @endspecial @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -127.02722 -86.12622 -163.02722 -86.12622 1.0 0.09766 bz}xy @endspecial 10490 2488 a @beginspecial @setspecial {-1007 10 /xy AB}xy @endspecial 16009 -537 a @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -127.02722 -86.12622 -163.02722 -86.12622 0.09766 0.94519 bz}xy @endspecial @beginspecial @setspecial {mark -81.51361 -114.83496 -81.51361 -78.83496 -127.02722 -86.12622 -163.02722 -86.12622 1.0 0.94519 bz}xy @endspecial 10280 1474 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 1596 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -45.41748 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 10105 3622 a @beginspecial @setspecial {-0.09242 -0.07106 l}xy @endspecial 9019 4385 a @beginspecial @setspecial {-303 10 /xy AB}xy @endspecial 3 x @beginspecial @setspecial {-31.01413 -21.8489 l}xy @endspecial -3 x @beginspecial @setspecial {-0.09242 0.0 l}xy @endspecial 10280 5510 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 204 x @beginspecial @setspecial {6.0 6.0 6.0 6.0 ox}xy @endspecial 218 x @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 587 x @beginspecial @setspecial {1024 10 /xy AB}xy @endspecial @beginspecial @setspecial {0.0 -16.70874 l}xy @endspecial @beginspecial @setspecial {0.0 0.0 l}xy @endspecial 16009 -537 a @beginspecial @setspecial {mark -163.02722 -200.96118 -127.02722 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 1.0 0.05469 bz}xy @endspecial 13112 3828 a @beginspecial @setspecial {-3268 10 /xy AB}xy @endspecial 16009 -537 a @beginspecial @setspecial {mark -163.02722 -200.96118 -127.02722 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 0.05469 0.91577 bz}xy @endspecial @beginspecial @setspecial {mark -163.02722 -200.96118 -127.02722 -200.96118 -81.51361 -150.83496 -81.51361 -114.83496 1.0 0.91583 bz}xy @endspecial 10280 7528 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 10479 7607 a @beginspecial @setspecial {0.14102 -0.09671 l}xy @endspecial 13039 8507 a @beginspecial @setspecial {2711 10 /xy AB}xy @endspecial @beginspecial @setspecial {72.98056 -25.70435 l}xy @endspecial @beginspecial @setspecial {0.03444 -0.05162 l}xy @endspecial 8847 4501 a @beginspecial @setspecial {6.0 6.0 6.0 6.0 ot}xy @endspecial 9023 4631 a @beginspecial @setspecial {0.1163 -0.0753 l}xy @endspecial 10109 5394 a @beginspecial @setspecial {2351 10 /xy AB}xy @endspecial 3 x @beginspecial @setspecial {31.01266 -21.85739 l}xy @endspecial -3 x @beginspecial @setspecial {0.1163 0.0 l}xy @endspecial 8962 9256 a Fv(Figure)125 b(1:)166 b(Example)124 b(of)h(instrumen)-10 b(ted)123 b(co)10 b(de)125 b(la)-10 b(y)g(out)8636 10244 y Fw(new)156 b(threshold)g(c)-9 b(hec)g(k)156 b(m)-9 b(ust)156 b(app)9 b(ear)155 b(immediately)h(after) g(eac)-9 b(h)8636 10613 y(function)164 b(call.)312 b(This)163 b(treatmen)-9 b(t)164 b(is)g(appropriate)e(if,)178 b(e.g.,)g(the)8636 10982 y(callee)109 b(is)g(b)9 b(eing)107 b(compiled)g(separately)-27 b(.)8953 11351 y(Ho)-9 b(w)g(ev)g(er,)146 b(if)141 b(the)f(callee)g(is) h(kno)-9 b(wn)138 b(and)h(a)-9 b(v)-18 b(ailable)138 b(for)i(exam-)8636 11720 y(ination,)146 b(a)138 b(simple)g(in)-9 b(terpro)9 b(cedural)137 b(analysis)h(can)g(b)9 b(e)137 b(used.)234 b(A)8636 12089 y Fu(weightless)116 b(function)133 b Fw(has)107 b(the)h(follo)-9 b(wing)108 b(prop)9 b(erties:)9107 12709 y Fr(\017)157 b Fw(The)108 b(function)g(con)-9 b(tains)108 b(no)g(instrumen)-9 b(tation)107 b(sites.)9107 13303 y Fr(\017)157 b Fw(The)108 b(function)g(only)f(calls)j(other)d(w) -9 b(eigh)g(tless)108 b(functions.)8953 13923 y(The)153 b(set)i(of)g(w)-9 b(eigh)g(tless)154 b(functions)h(can)f(b)9 b(e)154 b(computed)g(via)g(a)8636 14292 y(standard)108 b(iterativ)-9 b(e)108 b(algorithm.)8953 14661 y(F)-27 b(or)164 b(purp)9 b(oses)164 b(of)g(iden)-9 b(tifying)164 b(acyclic)i(regions)e(and)f(placing)8636 15030 y(threshold)118 b(c)-9 b(hec)g(ks,)122 b(calls)e(to)f(w)-9 b(eigh)g(tless)118 b(functions)h(are)f(in)-9 b(visible.)8636 15399 y(Acyclic)139 b(regions)d(can)h(extend)e(b)9 b(elo)-9 b(w)136 b(suc)-9 b(h)137 b(calls,)145 b(and)136 b(no)g(addi-)8636 15768 y(tional)81 b(threshold)f(c)-9 b(hec)g(k)81 b(is)g(required)f(after)h (suc)-9 b(h)81 b(a)g(call)g(returns.)136 b(A)8636 16137 y(further)83 b(b)9 b(ene\014t)82 b(is)i(that)f(the)f(b)9 b(o)g(dies)83 b(of)f(w)-9 b(eigh)g(tless)83 b(functions)g(ma)-9 b(y)8636 16506 y(b)9 b(e)135 b(compiled)f(with)h(no)f(mo)9 b(di\014cations.)224 b(They)134 b(ha)-9 b(v)g(e)133 b(no)h(thresh-)8636 16875 y(old)119 b(c)-9 b(hec)g(ks,)122 b(no)c(instrumen)-9 b(ted)119 b(co)9 b(de,)121 b(and)d(therefore)g(require)g(no)8636 17244 y(cloning)108 b(or)g(transformation)g(of)g(an)-9 b(y)107 b(kind.)8636 17880 y Fx(2.4)422 b(Global)107 b(Countdo)l(wn)f(Management)8953 18337 y Fw(Our)124 b(initial)i(exp)9 b(erience)124 b(suggests)g(that)h(ha)-9 b(ving)124 b(the)g(next-site) 8636 18706 y(coun)-9 b(tdo)g(wn)119 b(in)h(a)f(global)g(v)-18 b(ariable)119 b(can)g(b)9 b(e)120 b(exp)9 b(ensiv)-9 b(e.)177 b(Our)120 b(sys-)8636 19075 y(tem)90 b(is)g(implemen)-9 b(ted)89 b(as)g(a)h(source-to-source)f(transformation)g(for)8636 19444 y(C,)101 b(with)g FA(gcc)f Fw(as)h(our)f(nativ)-9 b(e)99 b(compiler.)142 b(W)-27 b(e)100 b(\014nd)g(that)g FA(gcc)h Fw(treats)8636 19813 y(the)156 b(man)-9 b(y)155 b(\\)p FA(countdown--)p Fw(")i(decremen)-9 b(ts)155 b(along)g(the)h (fast)h(path)8636 20182 y(quite)96 b(p)9 b(o)g(orly)-27 b(.)139 b(It)96 b(will)h(not,)h(for)d(example,)i(coalesce)e(a)h (sequence)e(of)8636 20551 y(\014v)-9 b(e)84 b(suc)-9 b(h)85 b(decremen)-9 b(ts)83 b(in)-9 b(to)85 b(a)f(single)h(\\)p FA(countdown)166 b(-=)g(5)p Fw(")84 b(adjust-)8636 20920 y(men)-9 b(t.)136 b(This)84 b(apparen)-9 b(tly)82 b(stems)h(from)h (conserv)-18 b(ativ)-9 b(e)82 b(assumptions)8636 21289 y(ab)9 b(out)108 b(aliasing)f(of)i(global)e(v)-18 b(ariables.)8953 21658 y(E\016cien)-9 b(t)167 b(coun)-9 b(tdo)g(wn)166 b(managemen)-9 b(t)164 b(requires)j(that)g(the)g(na-)8636 22027 y(tiv)-9 b(e)98 b(C)f(compiler)g(tak)-9 b(e)96 b(greater)h(lib)9 b(erties)98 b(when)e(optimizing)h(these)8636 22396 y(decremen)-9 b(ts.)208 b(W)-27 b(e)129 b(assist)h(the)f(nativ)-9 b(e)129 b(compiler)g(b)-9 b(y)129 b(main)-9 b(taining)8636 22765 y(the)108 b(coun)-9 b(tdo)g(wn)107 b(in)h(a)g(lo)9 b(cal)109 b(v)-18 b(ariable)107 b(within)h(eac)-9 b(h)108 b(function:)p eop %%Page: 5 5 5 4 bop -262 -291 a Fw(1.)158 b(A)-9 b(t)161 b(function)g(en)-9 b(try)-27 b(,)174 b Fu(imp)-17 b(ort)191 b Fw(the)161 b(curren)-9 b(t)161 b(global)f(coun)-9 b(t-)149 78 y(do)g(wn)107 b(in)-9 b(to)108 b(a)g(lo)9 b(cal)108 b(v)-18 b(ariable.)-262 673 y(2.)158 b(Use)72 b(this)g(lo)9 b(cal)73 b(cop)-9 b(y)71 b(for)i(all)f(decremen)-9 b(ts,)79 b(threshold)71 b(c)-9 b(hec)g(ks,)149 1042 y(and)107 b(sampling)g(decisions.)-262 1637 y(3.)158 b(Just)126 b(b)9 b(efore)125 b(function)g(exit,)131 b Fu(exp)-17 b(ort)156 b Fw(this)127 b(lo)9 b(cal)126 b(cop)-9 b(y)125 b(bac)-9 b(k)149 2006 y(out)108 b(to)g(the)g(global.) -326 2630 y(T)-27 b(o)105 b(main)-9 b(tain)105 b(agreemen)-9 b(t)104 b(across)i(all)g(functions,)h(w)-9 b(e)105 b(m)-9 b(ust)106 b(also)-642 2999 y(exp)9 b(ort)102 b(just)h(b)9 b(efore)102 b(eac)-9 b(h)102 b(function)h(call)g(and)f(imp)9 b(ort)102 b(again)g(after)-642 3368 y(eac)-9 b(h)133 b(call)i(returns.)222 b(Again,)140 b(though,)f(calls)c(to)g(w)-9 b(eigh)g(tless)134 b(func-)-642 3737 y(tions)103 b(ma)-9 b(y)101 b(simply)i(b)9 b(e)102 b(ignored,)h(as)f(they)g(do)g(not)g(c)-9 b(hange)101 b(or)i(ev)-9 b(en)-642 4106 y(insp)9 b(ect)129 b(the)g(coun)-9 b(tdo)g(wn.)205 b(Similarly)-27 b(,)134 b(the)129 b(b)9 b(o)g(dies)127 b(of)i(w)-9 b(eigh)g(tless)-642 4475 y(functions)159 b(need)f(not)g(imp)9 b(ort)159 b(and)f(exp)9 b(ort)158 b(at)h(en)-9 b(try)159 b(and)f(exit,)-642 4844 y(since)151 b(they)g(alw)-9 b(a)g(ys)150 b(lea)-9 b(v)g(e)149 b(the)i(coun)-9 b(tdo)g(wn)149 b(unc)-9 b(hanged.)270 b(With)-642 5213 y(this)156 b(c)-9 b(hange,)165 b(the)155 b(con)-9 b(v)g(en)g(tional)153 b(nativ)-9 b(e)154 b(C)h(compiler)g(can) g(coa-)-642 5582 y(lesce)93 b(decremen)-9 b(ts)92 b(and)f(p)9 b(erform)92 b(other)h(standard)e(but)h(imp)9 b(ortan)-9 b(t)-642 5951 y(optimizations.)-642 6588 y Fx(2.5)422 b(Issues)106 b(in)g(Remote)h(Sampling)-326 7045 y Fw(Our)e(framew)-9 b(ork)103 b(for)i(statistically)i(fair)e(sampling)e(can)i(b)9 b(e)104 b(used)-642 7414 y(for)151 b(an)-9 b(y)151 b(program)e (monitoring)i(application.)273 b(As)152 b(discussed)f(in)-642 7783 y(Section)g(1,)162 b(there)150 b(are)h(issues)g(p)9 b(eculiar)151 b(to)h(monitoring)e(a)h(large)-642 8152 y(n)-9 b(um)g(b)9 b(er)138 b(of)h(remote)f(sites.)239 b(Here)138 b(w)-9 b(e)139 b(brie\015y)f(discuss)i(the)f(main)-642 8521 y(problems)107 b(and)g(a)h(particular)h(solution)f(that)g(w)-9 b(e)108 b(adopt.)-326 8890 y(Remote)72 b(monitoring)f(can)h(harm)f(p)9 b(erformance)71 b(in)h(sev)-9 b(eral)72 b(w)-9 b(a)g(ys.)-642 9259 y(As)170 b(usual)g(the)h(p)9 b(erformance)169 b(p)9 b(enalt)-9 b(y)169 b(imp)9 b(osed)170 b(b)-9 b(y)169 b(the)i(extra)-642 9628 y(monitoring)147 b(co)9 b(de)148 b(is)i(a)e(concern,)158 b(but)148 b(so)h(are)f(the)g(use)g(of)h(lo)9 b(cal)-642 9997 y(storage)132 b(to)h(hold)f(results)i(\(ev)-9 b(en)132 b(temp)9 b(orarily\))132 b(on)g(a)h(user's)g(ma-)-642 10366 y(c)-9 b(hine,)171 b(the)158 b(use)g(of)h(net)-9 b(w)g(ork)157 b(bandwidth)g(to)i(transmit)g(results,)-642 10735 y(and)128 b(\014nally)g(the)h(storage)f(needed)f(to)i(hold)g (results)h(on)e(a)h(cen)-9 b(tral)-642 11104 y(serv)g(er)148 b(for)h(analysis.)267 b(F)-27 b(or)149 b(example,)158 b(if)149 b(w)-9 b(e)149 b(wish)g(to)g(retain)g(all)-642 11473 y(sampled)101 b(data,)i(then)f(the)g(storage)g(requiremen)-9 b(ts)101 b(for)i(the)f(cen)-9 b(tral)-642 11842 y(serv)g(er)127 b(gro)-9 b(w)126 b(linearly)h(with)h(the)f(n)-9 b(um)g(b)9 b(er)126 b(of)i(executions)e(ev)-9 b(en)126 b(if)-642 12211 y(the)108 b(data)f(collected)i(from)f(eac)-9 b(h)108 b(execution)f(is)i(constan)-9 b(t)108 b(size.)-326 12580 y(Our)h(approac)-9 b(h)107 b(is)j(to)f(sample)g(the)g(n)-9 b(um)g(b)9 b(er)107 b(of)i(observ)-18 b(ations)108 b(of)-642 12949 y(eac)-9 b(h)137 b(of)i(a)e(v)-9 b(ery)138 b(large,)145 b(but)138 b(\014xed,)144 b(set)139 b(of)f(predicates)g(\(see)g(Sec-) -642 13318 y(tions)111 b(3.2)g(and)e(3.3\).)153 b(The)110 b(\014nal)g(form)h(of)g(the)g(data)f(is)i(a)e(v)-9 b(ector)111 b(of)-642 13687 y(in)-9 b(tegers,)109 b(with)h(p)9 b(osition)108 b Fq(i)i Fw(con)-9 b(taining)108 b(the)h(n)-9 b(um)g(b)9 b(er)108 b(of)h(times)h(w)-9 b(e)-642 14056 y(observ)g(ed)137 b(that)i(the)g Fq(i)p Fw(th)h(predicate)e(w)-9 b(as)139 b(true.)237 b(F)-27 b(or)139 b(example,)145 b(a)-642 14425 y(t)-9 b(ypical)105 b(en)-9 b(try)105 b(migh)-9 b(t)104 b(b)9 b(e)105 b(that)g(the)g(predicate)f Fq(x)91 b(>)f(y)116 b Fw(at)105 b(a)g(partic-)-642 14794 y(ular)f(program)e(p)9 b(oin)-9 b(t)104 b(w)-9 b(as)104 b(observ)-9 b(ed)102 b(to)i(b)9 b(e)104 b(true)g(42)f(times)i(in)f(one)-642 15163 y(execution.)-326 15532 y(Main)-9 b(taining)97 b(a)g(v)-9 b(ector)97 b(of)h(coun)-9 b(ters)97 b(pro)9 b(duces)96 b(data)h(for)h(an)e(ex-)-642 15901 y(ecution)145 b(whose)g(size)h(is)g(largely)f(indep)9 b(enden)-9 b(t)143 b(of)i(the)h(sampling)-642 16271 y(densit)-9 b(y)117 b(or)h(running)f(time.)174 b(The)117 b(loss)i(of)f(information,)i(ho)-9 b(w)g(ev)g(er,)-642 16640 y(is)122 b(signi\014can)-9 b(t,)124 b(as)d(the)g(order)g(of)g(the)g(observ)-18 b(ations)120 b(is)h(discarded.)-642 17009 y(While)82 b(our)f(results)i(can)e(b)9 b(e)82 b(in)-9 b(terpreted)81 b(as)h(sho)-9 b(wing)80 b(that)i(one)f(can)-642 17378 y(go)115 b(a)g(long)g(w)-9 b(a)g(y)115 b(ignoring)f(ordering,)j(w)-9 b(e)115 b(exp)9 b(ect)115 b(there)g(are)g(in)-9 b(ter-)-642 17747 y(esting)141 b(applications)g(that)g(require)f(ordering)g(information.)243 b(W)-27 b(e)-642 18116 y(lea)-9 b(v)g(e)119 b(the)h(problem)f(of)i (determining)e(ho)-9 b(w)119 b(to)h(e\016cien)-9 b(tly)121 b(gather,)-642 18485 y(store)97 b(and)e(analyze)h(partial)h(traces)g (\(with)h(ordering)d(information\))-642 18854 y(for)108 b(future)g(w)-9 b(ork.)-642 19670 y Fx(3.)422 b(APPLICA)-40 b(TIONS)104 b(AND)g(EXPERIMENTS)-326 20127 y Fw(As)114 b(outlined)e(in)i(Section)f(1,)i(w)-9 b(e)113 b(rep)9 b(ort)113 b(on)f(three)h(applications)-642 20496 y(of)96 b(our)f(framew)-9 b(ork.)139 b(F)-27 b(rom)95 b(the)h(least)g(to)f(the) h(most)g(sophisticated,)-642 20865 y(these)108 b(are:)-172 21432 y Fr(\017)158 b Fw(sharing)102 b(the)i(cost)g(of)f(assertions)h (among)e(man)-9 b(y)102 b(users)h(\(Sec-)149 21801 y(tion)108 b(3.1\);)-172 22396 y Fr(\017)158 b Fw(isolating)112 b(a)h(bug)e(that)i(is)h(deterministic)g(with)f(resp)9 b(ect)113 b(to)f(a)149 22765 y(predicate)107 b(\(Section)i(3.2\);)9107 -291 y Fr(\017)157 b Fw(using)109 b(statistical)j(regression)c(tec)-9 b(hniques)109 b(to)g(isolate)h(a)f(bug)9427 78 y(that)97 b(is)h(non-deterministic)g(with)f(resp)9 b(ect)97 b(to)h(ev)-9 b(ery)95 b(consid-)9427 447 y(ered)108 b(predicate)f(\(Section)i (3.3\).)8636 1018 y(F)-27 b(or)141 b(eac)-9 b(h)139 b(application)h(w) -9 b(e)140 b(rep)9 b(ort)139 b(on)h(the)g(o)-9 b(v)g(erhead)138 b(of)i(instru-)8636 1387 y(men)-9 b(tation.)228 b(F)-27 b(or)136 b(the)g(last)g(t)-9 b(w)g(o)136 b(applications)g(w)-9 b(e)136 b(also)f(quan)-9 b(tify)8636 1756 y(ho)g(w)120 b(e\013ectiv)-9 b(ely)120 b(and)f(e\016cien)-9 b(tly)120 b(the)g(bugs)g(are)g(isolated.)181 b(While)8636 2125 y(the)89 b(bug)f(isolation)h(examples)f(presen)-9 b(ted)87 b(here)i(are)f(based)g(on)g(\014nd-)8636 2494 y(ing)110 b(particular)h(bugs)e(in)h(sp)9 b(eci\014c)111 b(programs,)f(the)g(tec) -9 b(hniques)109 b(are)8636 2863 y(general.)8636 3500 y Fx(3.1)422 b(Sharing)108 b(the)e(Cost)f(of)h(Assertions)8953 3957 y Fw(In)165 b(con)-9 b(v)g(en)g(tional)164 b(usage,)178 b(C)165 b FA(assert\(\))h Fw(calls)h(are)d(used)h(dur-)8636 4326 y(ing)107 b(program)f(dev)-9 b(elopmen)g(t)105 b(but)i(are)g (disabled)f(when)g(co)9 b(de)106 b(ships)8636 4695 y(to)127 b(b)9 b(o)g(ost)125 b(p)9 b(erformance.)197 b(Ho)-9 b(w)g(ev)g(er,)129 b(deplo)-9 b(y)g(ed)123 b(programs)i(fail)i(in)8636 5064 y(unan)-9 b(ticipated)112 b(w)-9 b(a)g(ys,)113 b(and)f(it)h(w)-9 b(ould)112 b(b)9 b(e)112 b(helpful)g(to)h(retain)f(some)8636 5433 y(lev)-9 b(el)124 b(of)g(assertion)h(c)-9 b(hec)g(king)123 b(if)i(the)f(p)9 b(erformance)123 b(p)9 b(enalt)-9 b(y)123 b(w)-9 b(ere)8636 5802 y(not)108 b(excessiv)-9 b(e.)8953 6172 y(The)123 b Fl(CCured)g Fw(translator)h(analyzes)e(programs)h (written)h(in)g(C)8636 6541 y(and)159 b(attempts)g(to)h(pro)-9 b(v)g(e)158 b(that)h(p)9 b(oin)-9 b(ter)159 b(op)9 b(erations)158 b(are)h(mem-)8636 6910 y(ory)125 b(safe.)195 b(Where)124 b(this)i(cannot)e(b)9 b(e)124 b(done,)k Fl(CCured)d Fw(inserts)h(dy-) 8636 7279 y(namic)90 b(c)-9 b(hec)g(ks)90 b(to)f(enforce)h(memory)e (safet)-9 b(y)89 b(at)h(run)f(time)h([21].)139 b(F)-27 b(or)8636 7648 y(our)97 b(purp)9 b(oses,)98 b Fl(CCured)e Fw(is)i(simply)e(a)h(source)f(of)h(assertion-dense)8636 8017 y(co)9 b(de.)298 b(The)159 b(individual)g(assertions)g(are)g (quite)g(small)h(and)f(fast)8636 8386 y(\(arra)-9 b(y)127 b(b)9 b(ounds)125 b(c)-9 b(hec)g(ks,)133 b(testing)127 b(for)g(n)-9 b(ull,)132 b(etc.\))203 b(but)126 b(their)i(p)9 b(er-)8636 8755 y(formance)95 b(impact)h(can)f(b)9 b(e)95 b(signi\014can)-9 b(t.)141 b(W)-27 b(e)95 b(wish)g(to)h(use)f(random) 8636 9124 y(sampling)108 b(to)g(spread)f(this)i(cost)g(among)e(man)-9 b(y)107 b(users.)8953 9493 y(W)-27 b(e)104 b(ha)-9 b(v)g(e)103 b(applied)h(sampling)g(to)h Fl(CCured)f Fw(v)-9 b(ersions)105 b(of)f(sev)-9 b(eral)8636 9862 y(Olden)100 b([10])g(and)f(SPECINT95)g ([23])h(b)9 b(enc)-9 b(hmarks.)141 b(All)101 b(programs)8636 10231 y(run)76 b(to)h(completion)f(and)f(w)-9 b(e)76 b(are)g(simply)g(measuring)f(the)h(o)-9 b(v)g(erhead)8636 10600 y(of)109 b(p)9 b(erforming)107 b(the)h(dynamic)f(c)-9 b(hec)g(ks.)8733 11237 y Fk(3.1.1)387 b(Whole\255Pr)-17 b(o)l(gr)-6 b(am)99 b(Sampling)8953 11694 y Fw(T)-27 b(able)112 b(1)h(summarizes)g(static)i(asp)9 b(ects)113 b(of)h(the)f(sampling)f(trans-)8636 12063 y(formation)i(when)e(applied) g(to)i(the)f(en)-9 b(tiret)g(y)114 b(of)f(eac)-9 b(h)113 b(b)9 b(enc)-9 b(hmark.)8636 12432 y(F)-27 b(or)120 b(eac)-9 b(h)120 b(program,)h(w)-9 b(e)120 b(giv)-9 b(e)119 b(the)h(total)g(n)-9 b(um)g(b)9 b(er)119 b(of)h(non-library)8636 12801 y(functions)126 b(and)e(the)h(n)-9 b(um)g(b)9 b(er)124 b(of)i(these)f(that)g(are)g(w)-9 b(eigh)g(tless.)195 b(As)8636 13170 y Fl(CCured)149 b Fw(is)g(a)f(whole-program)e(analysis,)158 b(w)-9 b(eigh)g(tless)149 b(function)8636 13539 y(iden)-9 b(ti\014cation)146 b(has)g(the)g(adv) -18 b(an)-9 b(tage)144 b(of)i(b)9 b(eing)145 b(able)h(to)g(examine)8636 13908 y(ev)-9 b(ery)92 b(function)g(b)9 b(o)g(dy)-27 b(.)138 b(W)-27 b(e)92 b(also)g(coun)-9 b(t)93 b(the)f(n)-9 b(um)g(b)9 b(er)91 b(of)h(functions)8636 14277 y(that)d(directly)h(con) -9 b(tain)88 b(at)h(least)g(one)f(instrumen)-9 b(tation)88 b(site.)139 b(\(The)8636 14646 y(remainder)108 b(are)h(functions)g (that)h(ha)-9 b(v)g(e)107 b(no)i(sites)h(of)f(their)h(o)-9 b(wn)108 b(but)8636 15015 y(that)h(call)g(other)f(non-w)-9 b(eigh)g(tless)107 b(functions.\))8953 15384 y(Considering)163 b(just)k(the)e(functions)g(that)h(directly)g(con)-9 b(tain)164 b(at)8636 15753 y(least)102 b(one)f(instrumen)-9 b(tation)101 b(site,)j(T)-27 b(able)101 b(1)g(also)g(presen)-9 b(ts)102 b(the)f(a)-9 b(v-)8636 16123 y(erage)129 b(n)-9 b(um)g(b)9 b(er)128 b(of)i(sites)h(p)9 b(er)129 b(function,)136 b(the)130 b(a)-9 b(v)g(erage)127 b(n)-9 b(um)g(b)9 b(er)129 b(of)8636 16492 y(threshold)91 b(c)-9 b(hec)g(k)90 b(p)9 b(oin)-9 b(ts)91 b(p)9 b(er)91 b(function,)j(and)c(the)h(a)-9 b(v)g(erage)88 b(thresh-)8636 16861 y(old)95 b(w)-9 b(eigh)g(t)94 b(for)g(all)h(suc)-9 b(h)95 b(p)9 b(oin)-9 b(ts.)140 b(\(Note)95 b(that)f(the)h(pro)9 b(duct)94 b(of)h(the)8636 17230 y(last)h(t)-9 b(w)g(o)95 b(of)g(these)f(metrics)i(ma)-9 b(y)94 b(exceed)g(the)h(\014rst,)j(as)d(a)g(single)f(in-)8636 17599 y(strumen)-9 b(tation)116 b(site)h(ma)-9 b(y)115 b(fall)i(under)e(more)h(than)f(one)g(threshold)8636 17968 y(c)-9 b(hec)g(k)101 b(p)9 b(oin)-9 b(t.)142 b(This)101 b(can)g(b)9 b(e)100 b(seen)g(in)h(the)g(example)e(in)i(Figure)f(1)h(as) 8636 18337 y(w)-9 b(ell.\))139 b(The)87 b(a)-9 b(v)g(erage)86 b(site)j(coun)-9 b(t)87 b(sho)-9 b(ws)88 b(the)g(densit)-9 b(y)87 b(of)i(assertions)8636 18706 y(in)97 b(the)f(co)9 b(de.)140 b(The)96 b(a)-9 b(v)g(erage)94 b(threshold)h(w)-9 b(eigh)g(t)96 b(measures)g(ho)-9 b(w)95 b(ef-)8636 19075 y(fectiv)-9 b(e)127 b(our)f(transformation)g(has)g(b)9 b(een)125 b(in)h(amortizing)h(the)f(cost)8636 19444 y(of)145 b(coun)-9 b(tdo)g(wn)143 b(c)-9 b(hec)g(ks)144 b(o)-9 b(v)g(er)144 b(m)-9 b(ultiple)144 b(sites.)255 b(Single-site)144 b(func-)8636 19813 y(tions)108 b(are)f(not)f(uncommon;)h(th)-9 b(us,)107 b(an)g(a)-9 b(v)g(erage)105 b(threshold)h(w)-9 b(eigh)g(t)8636 20182 y(ab)9 b(o)-9 b(v)g(e)148 b(t)-9 b(w)g(o)150 b(is)g(encouraging)e(b)9 b(ecause)148 b(it)j(suggests)f (that)f(o)-9 b(v)g(erall)8636 20551 y(amortization)109 b(rates)f(are)g(go)9 b(o)g(d.)8953 20920 y(T)-27 b(able)72 b(2)i(sho)-9 b(ws)73 b(the)g(p)9 b(erformance)73 b(impact)h(of)g (unconditional)e(in-)8636 21289 y(strumen)-9 b(tation)83 b(as)g(w)-9 b(ell)83 b(as)h(sampled)e(instrumen)-9 b(tation)82 b(at)i(v)-18 b(arious)8636 21658 y(densities.)141 b(The)96 b(baseline)g(for)g(comparison)g(is)h(co)9 b(de)96 b(translated)g(b)-9 b(y)8636 22027 y Fl(CCured)95 b Fw(and)f(from)i(whic)-9 b(h)95 b(all)g(dynamic)g(memory)f(safet)-9 b(y)95 b(c)-9 b(hec)g(ks)8636 22396 y(are)150 b(remo)-9 b(v)g(ed.)269 b(W)-27 b(e)149 b(rep)9 b(ort)150 b(the)g(sp)9 b(eedup)148 b(\()p Fq(>)161 b Fw(1\))150 b(or)g(slo)-9 b(wdo)g(wn)8636 22765 y(\()p Fq(<)91 b Fw(1\))86 b(relativ)-9 b(e)86 b(to)g(this)h(baseline)e(when)g(sampling)h(at)g(v)-18 b(arious)85 b(den-)p eop %%Page: 6 6 6 5 bop 1492 -628 13445 15 v 1485 -312 15 317 v 3528 -312 V 4685 -407 a Fj(function)116 b(coun)-10 b(ts)p 8145 -312 V 2191 w(a)g(v)g(erage)116 b(for)g(functions)f(with)g(sites)p 14930 -312 V 1485 5 V 1682 -272 a(b)10 b(enc)-10 b(hmark)p 3528 5 V 3725 -90 a(total)380 b(w)-10 b(eigh)g(tless)379 b(has)116 b(sites)p 8145 5 V 378 w(sites)379 b(threshold)116 b(c)-10 b(hec)g(ks)380 b(threshold)116 b(w)-10 b(eigh)g(t)p 14930 5 V 1492 19 13445 15 v 1492 82 V 1485 398 15 317 v 1682 303 a Fi(bh)p 3528 398 V 2150 w Fh(64)1587 b(15)1350 b(48)p 8145 398 V 508 w(11.9)2480 b(3.8)2506 b(9.5)p 14930 398 V 1485 715 V 1682 620 a Fi(bisort)p 3528 715 V 1554 w Fh(13)1736 b(3)1350 b(10)p 8145 715 V 658 w(4.1)2479 b(1.9)2506 b(2.6)p 14930 715 V 1485 1031 V 1682 936 a Fi(em3d)p 3528 1031 V 1852 w Fh(15)1736 b(5)1350 b(10)p 8145 1031 V 658 w(5.5)2479 b(3.1)2506 b(4.7)p 14930 1031 V 1485 1347 V 1682 1252 a Fi(health)p 3528 1347 V 1554 w Fh(16)1736 b(2)1350 b(14)p 8145 1347 V 658 w(6.1)2479 b(2.9)2506 b(3.1)p 14930 1347 V 1485 1663 V 1682 1569 a Fi(mst)p 3528 1663 V 2001 w Fh(16)1736 b(5)1350 b(11)p 8145 1663 V 658 w(6.2)2479 b(2.5)2506 b(3.9)p 14930 1663 V 1485 1980 V 1682 1885 a Fi(perimeter)p 3528 1980 V 1107 w Fh(11)1736 b(4)1499 b(6)p 8145 1980 V 658 w(7.8)2479 b(2.7)2506 b(2.1)p 14930 1980 V 1485 2296 V 1682 2201 a Fi(power)p 3528 2296 V 1703 w Fh(19)1736 b(4)1350 b(15)p 8145 2296 V 658 w(5.8)2479 b(3.0)2506 b(2.8)p 14930 2296 V 1485 2612 V 1682 2518 a Fi(treeadd)p 3528 2612 V 1554 w Fh(7)1736 b(2)1499 b(5)p 8145 2612 V 658 w(3.6)2479 b(2.0)2506 b(2.5)p 14930 2612 V 1485 2929 V 1682 2834 a Fi(tsp)p 3528 2929 V 2001 w Fh(14)1736 b(5)1499 b(8)p 8145 2929 V 508 w(15.2)2480 b(3.9)2506 b(3.5)p 14930 2929 V 1492 2943 13445 15 v 1485 3259 15 317 v 1682 3164 a Fi(compress)p 3528 3259 V 1256 w Fh(20)1736 b(4)1350 b(15)p 8145 3259 V 658 w(7.1)2479 b(2.9)2506 b(3.9)p 14930 3259 V 1485 3575 V 1682 3481 a Fi(go)p 3528 3575 V 2000 w Fh(380)1588 b(12)1201 b(359)p 8145 3575 V 508 w(14.8)2480 b(6.0)2506 b(4.7)p 14930 3575 V 1485 3892 V 1682 3797 a Fi(ijpeg)p 3528 3892 V 1553 w Fh(314)1588 b(34)1201 b(267)p 8145 3892 V 508 w(18.7)2480 b(5.0)2506 b(7.3)p 14930 3892 V 1485 4208 V 1682 4113 a Fi(li)p 3528 4208 V 2000 w Fh(375)1588 b(16)1201 b(336)p 8145 4208 V 658 w(6.2)2479 b(3.2)2506 b(2.9)p 14930 4208 V 1492 4222 13445 15 v -642 4828 a Fv(T)-31 b(able)108 b(1:)159 b(Static)108 b(metrics)g(for)i(CCured)f(b)10 b(enc)-10 b(hmarks.)161 b(Olden)108 b(b)10 b(enc)-10 b(hmarks)108 b(are)h(listed)f(\014rst,)j(follo)-10 b(w)g(ed)109 b(b)-10 b(y)108 b(SPECINT95.)p -535 5537 8221 15 v -542 5988 15 452 v -237 5877 a(b)10 b(enc)-10 b(hmark)p 1754 5988 V 379 w(alw)g(a)g(ys)p 3196 5988 V 379 w(10)3767 5743 y FC(\000)p Fg(2)4513 5877 y Fv(10)4887 5743 y FC(\000)p Fg(3)5634 5877 y Fv(10)6008 5743 y FC(\000)p Fg(4)6755 5877 y Fv(10)7129 5743 y FC(\000)p Fg(6)p 7679 5988 V -535 6002 8221 15 v -535 6065 V -542 6434 15 370 v -345 6323 a FA(bh)p 1754 6434 V 2448 w Fw(2.81)p 3196 6434 V 480 w Fu(1.30)522 b(1.10)h(1.07)g(1.07)p 7679 6434 V -542 6803 V -345 6692 a FA(bisort)p 1754 6803 V 1784 w Fw(1.08)p 3196 6803 V 480 w Fu(1.07)f(1.05)h(1.05)g(1.04)p 7679 6803 V -542 7172 V -345 7061 a FA(em3d)p 1754 7172 V 2116 w Fw(2.14)p 3196 7172 V 480 w Fu(1.12)f(1.04)h(1.02)g(1.04)p 7679 7172 V -542 7541 V -345 7430 a FA(health)p 1754 7541 V 1784 w Fw(1.02)p 3196 7541 V 542 w(1.03)479 b Fu(1.02)523 b(1.02)g(1.02)p 7679 7541 V -542 7910 V -345 7800 a FA(mst)p 1754 7910 V 2282 w Fw(1.25)p 3196 7910 V 480 w Fu(1.06)f(1.04)h(1.03)g(1.04)p 7679 7910 V -542 8279 V -345 8169 a FA(perimeter)p 1754 8279 V 1286 w Fw(1.08)p 3196 8279 V 542 w(1.19)542 b(1.13)f(1.13)h(1.12)p 7679 8279 V -542 8648 V -345 8538 a FA(power)p 1754 8648 V 1950 w Fw(1.36)p 3196 8648 V 480 w Fu(1.07)522 b(1.05)h(1.04)g(1.04)p 7679 8648 V -542 9017 V -345 8907 a FA(treeadd)p 1754 9017 V 1618 w Fw(1.13)p 3196 9017 V 480 w Fu(1.09)f(1.09)h(1.09)g(1.11) p 7679 9017 V -542 9386 V -345 9276 a FA(tsp)p 1754 9386 V 2282 w Fw(1.05)p 3196 9386 V 542 w(1.17)542 b(1.16)f(1.15)h(1.14)p 7679 9386 V -535 9400 8221 15 v -542 9769 15 370 v -345 9659 a FA(compress)p 1754 9769 V 1452 w Fw(2.01)p 3196 9769 V 480 w Fu(1.21)522 b(1.14)h(1.14)g(1.14)p 7679 9769 V -542 10138 V -345 10028 a FA(go)p 1754 10138 V 2448 w Fw(1.17)p 3196 10138 V 542 w(1.46)542 b(1.26)f(1.22)h(1.22)p 7679 10138 V -542 10507 V -345 10397 a FA(ijpeg)p 1754 10507 V 1950 w Fw(2.46)p 3196 10507 V 480 w Fu(1.17)522 b(1.05)h(1.04)g(1.03)p 7679 10507 V -542 10877 V -345 10766 a FA(li)p 1754 10877 V 2448 w Fw(1.58)p 3196 10877 V 480 w Fu(1.24)f(1.18)h(1.16)g(1.16)p 7679 10877 V -535 10891 8221 15 v -642 11497 a Fv(T)-31 b(able)177 b(2:)270 b(Relativ)-10 b(e)176 b(p)10 b(erformance)178 b(of)214 b(CCured)177 b(b)10 b(enc)-10 b(h-)-642 11866 y(marks)143 b(with)g(unconditional)h(or)g(sampled)f(instrumen)-10 b(ta-)-642 12235 y(tion.)165 b Ff(Italics)148 b Fv(marks)120 b(cases)h(where)h(sampled)e(instrumen-)-642 12604 y(tation)k(outp)10 b(erforms)125 b(unconditional)g(instrumen)-10 b(tation.)-642 13908 y Fw(sities.)238 b(All)140 b(b)9 b(enc)-9 b(hmarks)138 b(w)-9 b(ere)138 b(compiled)h(using)k FA(gcc)c Fw(3.2)g(using)-642 14277 y(optimization)118 b(lev)-9 b(el)118 b FA(-O2)p Fw(.)175 b(Times)119 b(w)-9 b(ere)117 b(collected)i(on)f(a)g(1.3)g(GHz) -642 14646 y(P)-9 b(en)g(tium)107 b(4)g(Lin)-9 b(ux)106 b(w)-9 b(orkstation)107 b(with)g(512)f(megab)-9 b(ytes)105 b(of)j(RAM.)-642 15015 y(Rep)9 b(orted)108 b(sp)9 b(eedups)108 b(represen)-9 b(t)109 b(the)g(a)-9 b(v)g(erage)107 b(of)i(four)h(runs;) g(eac)-9 b(h)-642 15384 y(run)136 b(used)g(a)h(di\013eren)-9 b(t)136 b(pre-generated)e(bank)h(of)i(1024)e(geometri-)-642 15753 y(cally)108 b(distributed)h(random)e(coun)-9 b(tdo)g(wns.)-326 16123 y(Unconditional)164 b(instrumen)-9 b(tation)164 b(imp)9 b(oses)164 b(slo)-9 b(wdo)g(wns)163 b(that)-642 16492 y(v)-18 b(ary)80 b(widely)h(from)h(\()p FA(health)p Fw(:)132 b(2\045\))82 b(to)f(\()p FA(bh)p Fw(:)132 b(181\045;)90 b FA(ijpeg)p Fw(:)132 b(146\045\).)-642 16861 y(Ev)-9 b(en)71 b(at)h(a)g(fairly)h(high)e(sampling)h(densit)-9 b(y)71 b(of)4993 16789 y Fz(1)5086 16861 y Fw(/)-18 b Fz(100)o Fw(,)80 b(more)72 b(than)f(t)-9 b(w)g(o)-642 17230 y(thirds)84 b(of)g(our)f(b)9 b(enc)-9 b(hmarks)82 b(run)h(faster)h(than)f(when)f(all)i(c)-9 b(hec)g(ks)84 b(are)-642 17599 y(alw)-9 b(a)g(ys)133 b(p)9 b(erformed.)220 b(Because)133 b(eac)-9 b(h)133 b(single)h(c)-9 b(hec)g(k)133 b(is)i(small)f(and)-642 17968 y(fast,)167 b(this)155 b(suggests)f(that)g(w)-9 b(e)154 b(ha)-9 b(v)g(e)153 b(b)9 b(een)153 b(successful)j(in)e(amor-)-642 18337 y(tizing)160 b(the)g(sampling)f(o)-9 b(v)g(erhead.)297 b(On)159 b(the)h(other)f(hand,)172 b(three)-642 18706 y(b)9 b(enc)-9 b(hmarks)84 b(run)g(slo)-9 b(w)g(er,)90 b(with)c FA(go)f Fw(sho)-9 b(wing)84 b(the)h(largest)g(p)9 b(enalt)-9 b(y)-27 b(.)-642 19075 y(In)114 b(these)f(cases,)i(the)e (time)h(reco)-9 b(v)g(ered)112 b(b)-9 b(y)113 b(skipping)6031 19003 y Fz(99)6252 19075 y Fw(/)-18 b Fz(100)113 b Fw(c)-9 b(hec)g(ks)-642 19444 y(is)171 b(not)g(enough)d(to)j(mask)f(the)h (added)e(o)-9 b(v)g(erhead)168 b(of)j(sampling.)-642 19813 y(F)-27 b(urthermore,)169 b(in)157 b(all)h(b)9 b(enc)-9 b(hmarks,)168 b(the)157 b(o)-9 b(v)g(erhead)155 b(relativ)-9 b(e)157 b(to)-642 20182 y(instrumen)-9 b(tation-free)134 b(co)9 b(de)134 b(remains)g(large.)222 b(Only)134 b(\014v)-9 b(e)134 b(b)9 b(enc)-9 b(h-)-642 20551 y(marks)84 b(ha)-9 b(v)g(e)83 b(less)j(than)e(a)g(10\045)g(slo)-9 b(wdo)g(wn,)88 b(and)c(only)g(one)g(is)h(b)9 b(elo)-9 b(w)-642 20920 y(5\045.)-326 21289 y(P)g(erformance)109 b(impro)-9 b(v)g(es)109 b(as)h(w)-9 b(e)110 b(reduce)f(the)g(sampling)h(densit)-9 b(y)-642 21658 y(to)-230 21586 y Fz(1)-138 21658 y Fw(/)-18 b Fz(1000)o Fw(.)188 b(Most)123 b(b)9 b(enc)-9 b(hmarks)121 b(su\013er)h(less)h(than)f(a)g(10\045)g(p)9 b(enalt)-9 b(y)-642 22027 y(relativ)g(e)161 b(to)g(uninstrumen)-9 b(ted)160 b(co)9 b(de,)174 b(and)161 b(half)g(are)g(b)9 b(elo)-9 b(w)160 b(5\045.)-642 22396 y(F)-27 b(urther)117 b(reducing)e(the)i(sampling)f(densit)-9 b(y)116 b(to)5362 22324 y Fz(1)5455 22396 y Fw(/)-18 b Fz(10,000)116 b Fw(sho)-9 b(ws)117 b(lit-)-642 22765 y(tle)141 b(c)-9 b(hange,)147 b(and)139 b(b)-9 b(y)140 b(the)g(time)h(w)-9 b(e)140 b(reac)-9 b(h)4979 22693 y Fz(1)5072 22765 y Fw(/)-18 b Fz(1,000,000)140 b Fw(it)h(is)g(clear)8636 5874 y(that)152 b(w)-9 b(e)150 b(ha)-9 b(v)g(e)150 b(reac)-9 b(hed)150 b(a)h(p)9 b(erformance)150 b(\015o)9 b(or.)272 b(Three)150 b(b)9 b(enc)-9 b(h-)8636 6243 y(marks)137 b(\()p FA(perimeter)p Fw(,)145 b FA(tsp)p Fw(,)g FA(go)p Fw(\))137 b(are)g(unable)e(to)i(comp)9 b(ensate)135 b(for)8636 6612 y(their)73 b(sampling)f(o)-9 b(v)g(erhead)70 b(relativ)-9 b(e)72 b(to)g(unconditional)g(instrumen-)8636 6981 y(tation,)98 b(while)c(the)g(remaining)e(ten)i(do)g(run)g(faster.)140 b(Among)93 b(these,)8636 7350 y(a)87 b(few)g(b)9 b(enc)-9 b(hmarks)85 b(\()p FA(treeadd)p Fw(,)92 b FA(compress)p Fw(,)g FA(li)p Fw(\))c(retain)e(high)g(o)-9 b(v)g(er-)8636 7719 y(head)79 b(relativ)-9 b(e)80 b(to)h(instrumen)-9 b(tation-free)80 b(co)9 b(de,)85 b(but)80 b(in)h(most)f(cases)8636 8088 y(the)j(p)9 b(enalt)-9 b(y)81 b(is)i(quite)f(mo)9 b(dest.)136 b(Some)81 b(b)9 b(enc)-9 b(hmarks)81 b(that)i(p)9 b(erform)8636 8457 y(the)72 b(w)-9 b(orst)73 b(using)f(unconditional)f (instrumen)-9 b(tation)71 b(p)9 b(erform)72 b(quite)8636 8826 y(w)-9 b(ell)107 b(with)g(sampling:)143 b FA(ijpeg)p Fw(,)108 b(for)e(example,)g(mo)-9 b(v)g(es)105 b(from)i(an)f(un-)8636 9195 y(conditional)141 b(instrumen)-9 b(tation)141 b(o)-9 b(v)g(erhead)139 b(of)i(146\045)f(to)h(only)g(3\045)8636 9564 y(with)109 b(sparse)f(sampling.)8733 10357 y Fk(3.1.2)387 b(Statically)99 b(Selective)e(Sampling)8953 10814 y Fw(It)125 b(is)g(not)f(necessary)g(to)g(put)g(all)h(instrumen)-9 b(tation)124 b(in)-9 b(to)124 b(a)g(sin-)8636 11183 y(gle)148 b(executable;)168 b(one)147 b(can)i(easily)f(create)g(m)-9 b(ultiple)149 b(executables)8636 11552 y(where)155 b(eac)-9 b(h)155 b(con)-9 b(tains)155 b(a)h(subset)f(of)h(the)f(complete)h (instrumen-)8636 11921 y(tation.)303 b(P)-9 b(artitioning)160 b(instrumen)-9 b(tation)161 b(b)-9 b(y)160 b(site,)175 b(b)-9 b(y)160 b(mo)9 b(dule,)8636 12290 y(b)-9 b(y)157 b(function,)170 b(or)157 b(b)-9 b(y)156 b(ob)18 b(ject)157 b(\014le)g(are)g(all)g(reasonable)e(sc)-9 b(hemes.)8636 12659 y(An)g(y)81 b(individual)f(executable)g(con)-9 b(tains)81 b(less)h(instrumen)-9 b(tation)81 b(and)8636 13028 y(therefore)112 b(incurs)h(a)f(smaller)g(p)9 b(erformance)111 b(p)9 b(enalt)-9 b(y)-27 b(.)156 b(F)-27 b(ew)-9 b(er)112 b(sites)8636 13397 y(mean)d(more)f(w)-9 b(eigh)g(tless)109 b(functions,)i(and)d(therefore)h(b)9 b(etter)109 b(in)-9 b(ter-)8636 13766 y(pro)9 b(cedural)149 b(optimization)i(p)9 b(er)149 b(Section)h(2.3.)270 b(F)-27 b(unctions)150 b(with-)8636 14135 y(out)86 b(instrumen)-9 b(tation)85 b(sites)i(require)e(no)g(co)9 b(de)86 b(duplication,)k(whic)-9 b(h)8636 14504 y(limits)137 b(executable)c(gro)-9 b(wth.)224 b(Kno)-9 b(wn)133 b(trusted)i(co)9 b(de)134 b(can)h(b)9 b(e)134 b(ex-)8636 14873 y(empted)77 b(from)h(instrumen)-9 b(tation,)83 b(or)77 b(esp)9 b(ecially)78 b(susp)9 b(ect)78 b(co)9 b(de)77 b(can)8636 15242 y(b)9 b(e)100 b(\\farmed)f(out")g(to)h (a)g(larger)f(prop)9 b(ortion)99 b(of)h(users)g(for)g(more)f(in-)8636 15611 y(tensiv)-9 b(e)152 b(study)-27 b(.)276 b(Giv)-9 b(en)151 b(a)h(suitable)g(dynamic)f(instrumen)-9 b(tation)8636 15980 y(infrastructure,)130 b(sites)c(can)e(b)9 b(e)124 b(added)e(or)j(remo)-9 b(v)g(ed)122 b(o)-9 b(v)g(er)124 b(time)h(as)8636 16349 y(debugging)106 b(needs)h(and)g(in)-9 b(termediate)107 b(results)i(w)-9 b(arran)g(t.)8953 16718 y(W)-27 b(e)199 b(ha)-9 b(v)g(e)197 b(exp)9 b(erimen)-9 b(ted)197 b(with)j(v)-18 b(arian)-9 b(ts)198 b(of)i(the)f Fl(CCured)8636 17087 y Fw(b)9 b(enc)-9 b(hmarks)103 b(in)h(whic)-9 b(h)103 b(only)g(a)h(single)f(function)h(is)g(instrumen)-9 b(ted)8636 17456 y(at)147 b(a)f(time.)260 b(Whereas)145 b(fully)i(instrumen)-9 b(ted)146 b(executables)f(range)8636 17825 y(from)186 b(13\045-149\045)e(larger)h(than)g(their)h (non-sampling)e(coun)-9 b(ter-)8636 18194 y(parts,)114 b(a)-9 b(v)g(erage)111 b(gro)-9 b(wth)111 b(for)i(single-function)g (instrumen)-9 b(ted)111 b(exe-)8636 18563 y(cutables)85 b(is)g(just)h(12\045)d(for)i(the)g(small)g(Olden)e(b)9 b(enc)-9 b(hmarks)83 b(and)h(6\045)8636 18932 y(for)j(the)f(larger)g (SPECINT95)g(applications.)137 b(P)-9 b(erformance)85 b(is)j(uni-)8636 19301 y(formly)80 b(go)9 b(o)g(d:)129 b(at)10915 19229 y Fz(1)11007 19301 y Fw(/)-18 b Fz(1000)79 b Fw(sampling,)86 b(94\045)79 b(of)h(site-con)-9 b(taining)80 b(func-)8636 19671 y(tions)121 b(incur)g(less)f(than)g(5\045)g(slo)-9 b(wdo)g(wn)119 b(v)-9 b(ersus)120 b(instrumen)-9 b(tation-)8636 20040 y(free)102 b(co)9 b(de,)102 b(while)g(ev)-9 b(en)100 b(the)h(w)-9 b(orst)102 b(single)f(function)h(has)f(less)h(than)8636 20409 y(a)108 b(12\045)g(p)9 b(enalt)-9 b(y)-27 b(.)8733 21201 y Fk(3.1.3)387 b(The)96 b(Ef)-7 b(fectiveness)99 b(of)e(Sampling)8953 21658 y Fw(F)-27 b(rom)105 b(these)g(b)9 b(enc)-9 b(hmarks)104 b(and)g(the)h(examples)f(in)i(Sections)f(3.2)8636 22027 y(and)78 b(3.3,)84 b(w)-9 b(e)78 b(conclude)g(that)h(realistic)h (deplo)-9 b(ymen)g(ts)77 b(will)i(use)f(sam-)8636 22396 y(pling)96 b(densities)f(b)9 b(et)-9 b(w)g(een)11989 22324 y Fz(1)12082 22396 y Fw(/)-18 b Fz(100)95 b Fw(and)13329 22324 y Fz(1)13421 22396 y Fw(/)-18 b Fz(1000)o Fw(.)141 b(But)96 b(ho)-9 b(w)95 b(e\013ectiv)-9 b(e)95 b(is)8636 22693 y Fz(1)8729 22765 y Fw(/)-18 b Fz(1000)130 b Fw(sampling)h(at)g (observing)e(rare)i(program)f(b)9 b(eha)-9 b(vior?)210 b(Sup-)p eop %%Page: 7 7 7 6 bop -642 -291 a Fw(p)9 b(ose)118 b(w)-9 b(e)119 b(are)g(in)-9 b(terested)118 b(in)i(an)e(ev)-9 b(en)g(t)118 b(o)9 b(ccurring)119 b(once)g(p)9 b(er)119 b(h)-9 b(un-)-642 78 y(dred)150 b(executions.)271 b(T)-27 b(o)150 b(ac)-9 b(hiev)g(e)150 b(90\045)g(con\014dence)f(of)i(observing)-642 447 y(this)109 b(ev)-9 b(en)g(t)107 b(in)h(at)h(least)f(one)f(run,)h(w)-9 b(e)108 b(need)f(at)h(least)-189 1336 y(log)58 b(\(1)73 b Fr(\000)f Fw(0)p Fq(:)p Fw(90\))o Fq(=)54 b Fw(log)2367 890 y Fo(\022)2606 1336 y Fw(1)72 b Fr(\000)3895 1131 y Fw(1)p 3208 1263 1536 14 v 3208 1550 a(100)f Fr(\002)h Fw(1000)4786 890 y Fo(\023)5115 1336 y Fw(=)91 b(230,258)105 b(runs.)-326 2224 y(While)123 b(this)h(is)f(a)g(large)f(n)-9 b(um)g(b)9 b(er,)125 b(consider)e(that)g(sixt)-9 b(y)123 b(million)-642 2593 y(O\016ce)151 b(XP)g(licenses)h(w)-9 b(ere)150 b(sold)h(in)g(its)h(\014rst)g(y)-9 b(ear)150 b(on)g(the)h(mar-)-642 2962 y(k)-9 b(et)103 b([19].)142 b(Assuming)103 b(eac)-9 b(h)102 b(licensee)h(runs)g(Microsoft)h(W)-27 b(ord)102 b(t)-9 b(wice)-642 3331 y(p)9 b(er)127 b(w)-9 b(eek,)131 b(then)126 b(this)j(user)e(base)f(pro)9 b(duces)126 b(230,258)f(runs)i(ev)-9 b(ery)-642 3700 y(nineteen)142 b(min)-9 b(utes.)251 b(Ac)-9 b(hieving)143 b(99\045)g(con\014dence)f (of)i(observing)-642 4069 y(an)154 b(ev)-9 b(en)g(t)154 b(that)h(o)9 b(ccurs)156 b(on)f(one)f(in)h(a)f(thousand)g(runs)h (requires)-642 4438 y(4,605,168)97 b(runs,)k(whic)-9 b(h)100 b(tak)-9 b(es)99 b(less)h(than)f(sev)-9 b(en)98 b(hours)h(to)h(gather.)-326 4807 y(F)-27 b(or)129 b(smaller)f(deplo)-9 b(ymen)g(ts,)132 b(w)-9 b(e)128 b(m)-9 b(ust)129 b(either)f(w)-9 b(ait)129 b(longer)e(for)-642 5176 y(su\016cien)-9 b(t)100 b(data)g(or)g(increase)g(the)g(sampling)f(densit)-9 b(y)-27 b(.)142 b(As)100 b(w)-9 b(e)100 b(shall)-642 5545 y(see)116 b(in)h(Sections)f(3.2)g(and)g(3.3,)i(at)f(least)f(for)h(restricted)h (classes)f(of)-642 5914 y(bugs)142 b(w)-9 b(e)143 b(can)g(p)9 b(erform)143 b(useful)g(analysis)f(with)i(a)f(few)g(thousand)-642 6283 y(executions.)201 b(Th)-9 b(us,)132 b(our)127 b(tec)-9 b(hniques)127 b(are)g(lik)-9 b(ely)127 b(most)h(suited)f(to)-642 6652 y(applications)95 b(where)f(it)j(is)f(p)9 b(ossible)95 b(to)g(gather)g(data)g(with)g(at)h(least)-642 6949 y Fz(1)-549 7021 y Fw(/)-18 b Fz(1000)107 b Fw(sampling)g(from)i (thousands)e(of)h(executions)f(p)9 b(er)108 b(da)-9 b(y)-27 b(.)-642 7794 y Fx(3.2)422 b(Bug)81 b(Isolation)h(Using)f(Pr)-8 b(edicate)83 b(Elimination)-326 8251 y Fw(In)134 b(this)h(section)g(w) -9 b(e)134 b(consider)g(automatic)g(isolation)g(of)g(deter-)-642 8620 y(ministic)91 b(bugs.)138 b(Recall)90 b(from)f(Section)g(1)h(that) f(for)h(a)f(deterministic)-642 8989 y(bug)130 b(there)g(is)i(a)e (predicate)h(that)g(b)9 b(ecomes)130 b(true)h(if)h(the)e(program)-642 9358 y(m)-9 b(ust)109 b(crash)h(at)f(some)g(p)9 b(oin)-9 b(t)109 b(in)g(the)g(future.)148 b(Deterministic)111 b(bugs)-642 9727 y(are)116 b(quite)g(common,)i(though)d(they)h(are)g (generally)e(easier)j(to)f(\014nd)-642 10096 y(and)d(\014x)g(using)h (an)-9 b(y)112 b(metho)9 b(d)113 b(than)h(non-deterministic)g(bugs)f (\(see)-642 10465 y(Section)108 b(3.3\).)-545 11237 y Fk(3.2.1)386 b(Instrumentation)101 b(Str)-6 b(ate)-15 b(gy)-326 11694 y Fw(As)113 b(a)f(case)h(study)f(in)g(\014nding)f (deterministic)j(bugs)e(w)-9 b(e)112 b(tak)-9 b(e)112 b(re-)-642 12063 y(lease)165 b(1.2)g(of)g(the)g FA(ccrypt)h Fw(encryption)f(to)9 b(ol.)316 b(This)166 b(v)-9 b(ersion)164 b(is)-642 12432 y(kno)-9 b(wn)135 b(to)i(con)-9 b(tain)137 b(a)f(bug)g(that)h(in)-9 b(v)g(olv)g(es)136 b(o)-9 b(v)g(erwriting)136 b(existing)-642 12801 y(\014les.)248 b(If)143 b(the)f(user)h(resp)9 b(onds)141 b(to)i(a)f(con\014rmation)g(prompt)g(with)-642 13170 y FA(EOF)108 b Fw(rather)g(than)g FA(yes)g Fw(or)h FA(no)p Fw(,)f FA(ccrypt)h Fw(crashes.)-326 13539 y(The)120 b FA(EOF)i Fw(sensitivit)-9 b(y)121 b(suggests)g(that)g(the)g(problem)f (has)g(some-)-642 13908 y(thing)157 b(to)h(do)f(with)i FA(ccrypt)p Fw('s)f(in)-9 b(teractions)159 b(with)f(standard)e(\014le) -642 14277 y(op)9 b(erations.)221 b(In)135 b(C,)f(these)g(functions)h (commonly)e(return)h(v)-18 b(alues)-642 14646 y(to)100 b(indicate)g(success)g(or)g(failure.)142 b(Man)-9 b(y)98 b(C)i(application)f(program-)-642 15015 y(mers)133 b(follo)-9 b(w)133 b(the)g(same)g(mo)9 b(del)132 b(for)i(their)f(o)-9 b(wn)133 b(error)g(rep)9 b(orting.)-642 15384 y(Th)-9 b(us,)116 b(randomly)d(sampling)h(function)h(return)f(v)-18 b(alues)114 b(ma)-9 b(y)113 b(iden-)-642 15753 y(tify)101 b(k)-9 b(ey)99 b(op)9 b(erations)99 b(that)h(b)9 b(eha)-9 b(v)g(e)98 b(di\013eren)-9 b(tly)99 b(in)i(successful)g(v)-9 b(er-)-642 16123 y(sus)80 b(crashed)f(runs.)134 b(W)-27 b(e)80 b(group)e(function)h(return)h(v)-18 b(alues)78 b(in)-9 b(to)80 b(three)-642 16492 y(classes:)163 b(negativ)-9 b(e)116 b(v)-18 b(alues,)118 b(zero,)i(and)c(p)9 b(ositiv)-9 b(e)117 b(v)-18 b(alues.)171 b(This)117 b(re-)-642 16861 y(duces)128 b(the)g(amoun)-9 b(t)128 b(of)g(information)g(w)-9 b(e)128 b(m)-9 b(ust)129 b(trac)-9 b(k)129 b(while)f(still)-642 17230 y(making)166 b(distinctions)i(consisten)-9 b(t)168 b(with)f(common)f(C)h(program-)-642 17599 y(ming)108 b(st)-9 b(yle.)-326 17968 y(W)-27 b(e)85 b(instrumen)-9 b(t)84 b FA(ccrypt)i Fw(as)e(follo)-9 b(ws.)137 b(Consider)84 b(eac)-9 b(h)84 b(syn)-9 b(tactic)-642 18337 y(call)82 b(site)g(that)g(returns)f(scalar)h(v)-18 b(alues,)86 b(including)81 b(b)9 b(oth)81 b(arithmetic)-642 18706 y(t)-9 b(yp)9 b(es)87 b(as)h(w)-9 b(ell)87 b(as)h(p)9 b(oin)-9 b(ters.)137 b(After)88 b(eac)-9 b(h)87 b(suc)-9 b(h)88 b(call,)k(up)9 b(date)87 b(one)f(of)-642 19075 y(three)81 b(coun)-9 b(ters)81 b(dep)9 b(ending)79 b(up)9 b(on)81 b(the)g(sign)g(of)h(the)g(result:)131 b(one)81 b(for)-642 19444 y(negativ)-9 b(e)129 b(v)-18 b(alues,)136 b(one)130 b(for)h(zeros,)137 b(and)130 b(one)g(for)h(p)9 b(ositiv)-9 b(e)131 b(v)-18 b(alues.)-642 19813 y(Eac)-9 b(h)142 b(call)g(site)g(has)g(its)g(o)-9 b(wn)141 b(triple)h(of)g(coun) -9 b(ters.)245 b(Th)-9 b(us,)149 b(when)-642 20182 y(the)126 b(program)f(terminates,)131 b(w)-9 b(e)126 b(can)g(examine)f(an)-9 b(y)125 b(function)h(call)-642 20551 y(of)112 b(in)-9 b(terest)113 b(and)e(ask)g(ho)-9 b(w)112 b(often)f(that)i(call)g (returned)e(a)g(negativ)-9 b(e,)-642 20920 y(zero,)108 b(or)g(p)9 b(ositiv)-9 b(e)108 b(v)-18 b(alue.)-326 21289 y(F)-27 b(or)74 b FA(ccrypt)p Fw(,)81 b(there)74 b(are)f(570)g(call)h (sites)h(of)f(in)-9 b(terest,)81 b(for)74 b(570)s Fr(\002)s Fw(3)89 b(=)-642 21658 y(1710)116 b(coun)-9 b(ters.)172 b(Eac)-9 b(h)118 b(coun)-9 b(ter)117 b(corresp)9 b(onds)116 b(to)i(a)f(single)g(predi-)-642 22027 y(cate)108 b(that)g(is)h(h)-9 b(yp)9 b(othesized)107 b(to)h(b)9 b(eha)-9 b(v)g(e)106 b(di\013eren)-9 b(tly)107 b(in)h(successful)-642 22396 y(v)-9 b(ersus)141 b(crashed)f(runs.)244 b(Sp)9 b(eci\014cally)-27 b(,)149 b(w)-9 b(e)141 b(p)9 b(ose)140 b(the)h(problem)f(as)-642 22765 y(follo)-9 b(ws:)9427 -291 y(Assume)93 b(that)h(predicates)g (capture)f(incorrect)h(b)9 b(eha)-9 b(v-)9427 78 y(ior.)134 b(That)73 b(is,)82 b(assume)73 b(that)h(eac)-9 b(h)73 b(predicate)h Fq(P)119 b Fw(should)9427 447 y(alw)-9 b(a)g(ys)120 b(b)9 b(e)120 b(false)h(during)f(correct)i(execution.)182 b(When)9427 816 y Fq(P)145 b Fw(is)101 b(true,)h(the)d(program)g (either)h(fails)g(\(a)h(determinis-)9427 1185 y(tic)118 b(bug\))e(or)g(is)h(at)g(increased)e(risk)i(of)g(failing)f(\(a)h(non-) 9427 1555 y(deterministic)110 b(bug\).)8953 2230 y(If)154 b(w)-9 b(e)153 b(eliminate)g(all)h(predicates)f(for)g(whic)-9 b(h)154 b(this)g(h)-9 b(yp)9 b(othesis)8636 2599 y(is)120 b(dispro)-9 b(v)g(ed)118 b(b)-9 b(y)118 b(observ)-9 b(ed)117 b(run)-9 b(time)119 b(b)9 b(eha)-9 b(vior,)120 b(then)f(the)g(predi-) 8636 2968 y(cates)128 b(that)g(remain)f(describ)9 b(e)127 b(the)h(conditions)f(under)f(whic)-9 b(h)128 b(the)8636 3337 y(program)107 b(fails.)8733 3984 y Fk(3.2.2)387 b(Elimination)100 b(Str)-6 b(ate)-15 b(gies)8953 4441 y Fw(W)-27 b(e)131 b(mak)-9 b(e)129 b(no)i(e\013ort)f(to)i(restrict)h (instrumen)-9 b(tation)130 b(to)h(kno)-9 b(wn)8636 4810 y(system)101 b(or)f(library)h(calls,)i(nor)d(do)g(w)-9 b(e)100 b(distinguish)h(functions)f(that)8636 5179 y(return)124 b(status)g(co)9 b(des)124 b(from)f(those)h(that)f(do)g(not.)191 b(Most)124 b(of)g(those)8636 5548 y(1710)119 b(predicates,)j(then,)h (ha)-9 b(v)g(e)118 b(no)h(b)9 b(earing)118 b(on)h(program)g(success) 8636 5917 y(or)147 b(failure.)258 b(Giv)-9 b(en)146 b(a)g(set)h(of)f (runs,)156 b(w)-9 b(e)146 b(can)g(discard)g(irrelev)-18 b(an)-9 b(t)8636 6286 y(predicates)108 b(using)g(a)g(set)h(of)f Fu(elimination)114 b(str)-17 b(ate)g(gies)26 b Fw(:)8795 6962 y Fr(h)p Fe(Elimination)266 b(b)-10 b(y)267 b(universal)f(falseho) 10 b(o)g(d)p Fr(i)p Fv(:)425 b Fw(Disregard)248 b(an)-9 b(y)9427 7331 y(coun)g(ter)142 b(that)g(is)h(zero)f(on)g(all)g(runs.) 247 b(These)141 b(lik)-9 b(ely)142 b(repre-)9427 7700 y(sen)-9 b(t)108 b(predicates)g(that)h(can)f(nev)-9 b(er)107 b(b)9 b(e)107 b(true.)8795 8315 y Fr(h)p Fe(Elimination)152 b(b)-10 b(y)152 b(lack)f(of)h(failing)g(coverage)p Fr(i)p Fv(:)210 b Fw(Disregard)141 b(an)-9 b(y)9427 8684 y(triple)159 b(of)g(coun)-9 b(ters)158 b(all)h(three)g(of)f(whic)-9 b(h)159 b(are)f(zero)g(on)g(all)9427 9053 y(failed)132 b(runs.)215 b(Because)131 b(one)g(coun)-9 b(ter)131 b(in)h(eac)-9 b(h)131 b(triple)h(m)-9 b(ust)9427 9422 y(alw)g(a)g(ys)132 b(b)9 b(e)132 b(true)g(for)h(an)-9 b(y)132 b(sample,)138 b(these)132 b(lik)-9 b(ely)132 b(represen)-9 b(t)9427 9791 y(instrumen)g(tation)90 b(sites)i(that)f(are)f(not)h(ev)-9 b(en)89 b(reac)-9 b(hed)90 b(in)h(fail-)9427 10160 y(ing)108 b(executions.)8795 10776 y Fr(h)p Fe(Elimination)163 b(b)-10 b(y)164 b(lack)e(of)h(failing)g(example)p Fr(i)p Fv(:)232 b Fw(Disregard)152 b(an)-9 b(y)9427 11145 y(coun)g(ter)148 b(that)g(is)h(zero)f(on)f(all)i(failed)f(runs.)264 b(These)147 b(lik)-9 b(ely)9427 11514 y(represen)g(t)93 b(predicates)g(that)h(need) e(not)i(b)9 b(e)93 b(true)g(for)h(a)g(failure)9427 11883 y(to)109 b(o)9 b(ccur.)8795 12498 y Fr(h)p Fe(Elimination)78 b(b)-10 b(y)78 b(successful)g(counterexample)p Fr(i)p Fv(:)127 b Fw(Disregard)72 b(an)-9 b(y)9427 12867 y(coun)g(ter)149 b(that)h(has)f(a)g(non-zero)f(v)-18 b(alue)148 b(on)h(an)-9 b(y)148 b(successful)9427 13236 y(run.)140 b(These)95 b(m)-9 b(ust)97 b(represen)-9 b(t)95 b(predicates)h(that)g(can)g(b)9 b(e)96 b(true)9427 13605 y(without)108 b(a)g(subsequen)-9 b(t)107 b(program)g(failure.)8953 14281 y(W)-27 b(e)108 b(c)-9 b(haracterize)109 b(these)g(as)f(strategies)h(b)9 b(ecause)108 b(they)g(are)g(sub-)8636 14650 y(ject)133 b(to)f(noise)f(from)h(random)e(sampling,)137 b(and)131 b(also)g(b)9 b(ecause)131 b(not)8636 15019 y(all)105 b(are)e(equally)g(applicable)g(to)h(all)g(bugs.)142 b(F)-27 b(or)104 b(example,)f(elimina-)8636 15388 y(tion)114 b(b)-9 b(y)113 b Fr(h)p Fd(successful)i(counterexample)p Fr(i)h Fw(assumes)d(that)h(the)f(bug)g(is)8636 15757 y(deterministic.)192 b(The)122 b(other)h(three)g(strategies)h(do)f(not) g(mak)-9 b(e)122 b(this)8636 16126 y(assumption,)e(but)e(do)f(require)g (enough)f(runs)h(so)h(that)g(an)-9 b(y)117 b(predi-)8636 16495 y(cate)103 b(that)f(is)h(ev)-9 b(er)101 b(true)h(is)h(lik)-9 b(ely)102 b(to)h(ha)-9 b(v)g(e)100 b(b)9 b(een)101 b(observ)-9 b(ed)100 b(true)i(at)8636 16864 y(least)113 b(once.)156 b(Note)111 b(that)i(these)e(strategies)i(are)e(also)h(not)g(indep)9 b(en-)8636 17233 y(den)-9 b(t:)139 b Fr(h)p Fd(universal)96 b(falseho)9 b(o)g(d)p Fr(i)97 b Fw(and)e Fr(h)p Fd(lack)j(of)f(failing) e(coverage)p Fr(i)j Fw(eac)-9 b(h)8636 17602 y(eliminate)79 b(a)f(subset)g(of)h(the)f(coun)-9 b(ters)79 b(iden)-9 b(ti\014ed)77 b(b)-9 b(y)78 b Fr(h)p Fd(lack)h(of)g(failing)8636 17971 y(example)p Fr(i)p Fw(.)144 b(Elimination)101 b(strategies)g (also)f(v)-18 b(ary)100 b(in)h(whic)-9 b(h)100 b(kinds)h(of)8636 18340 y(runs)85 b(they)g(exploit:)132 b Fr(h)p Fd(successful)86 b(counterexample)p Fr(i)h Fw(considers)e(only)8636 18709 y(successful)125 b(runs;)132 b Fr(h)p Fd(lack)124 b(of)g(failing)e (example)p Fr(i)j Fw(and)e Fr(h)p Fd(lack)h(of)g(failing)8636 19078 y(coverage)p Fr(i)158 b Fw(consider)e(only)g(failures;)180 b Fr(h)p Fd(universal)157 b(falseho)9 b(o)g(d)p Fr(i)156 b Fw(uses)8636 19447 y(b)9 b(oth.)8733 20094 y Fk(3.2.3)387 b(Data)98 b(Collection)g(and)g(Analysis)8953 20551 y Fw(One)114 b(function)h(call,)j(with)e(one)e(up)9 b(date)114 b(to)h(one)f(of)h(three)g(coun-)8636 20920 y(ters,)129 b(is)c(considered)f(one)f(instrumen)-9 b(tation)123 b(site.)194 b(W)-27 b(e)124 b(transform)8636 21289 y(the)170 b(instrumen)-9 b(tation)168 b(to)i(b)9 b(e)168 b(sampled)h(rather)g(than)f(uncondi-) 8636 21658 y(tional)130 b(using)f(the)h(framew)-9 b(ork)129 b(describ)9 b(ed)129 b(in)h(Section)f(2.)210 b(In)130 b(lieu)8636 22027 y(of)149 b(a)f(large)g(user)g(comm)-9 b(unit)g(y)-27 b(,)158 b(w)-9 b(e)148 b(generate)f(man)-9 b(y)147 b(runs)h(arti\014-)8636 22396 y(cially)108 b(in)f(the)f(spirit) i(of)f(the)g(F)-27 b(uzz)107 b(pro)18 b(ject)107 b([20].)144 b(Eac)-9 b(h)107 b(run)f(uses)h(a)8636 22765 y(randomly)101 b(selected)h(set)g(of)g(presen)-9 b(t)102 b(or)f(absen)-9 b(t)102 b(\014les,)h(randomized)p eop %%Page: 8 8 8 7 bop -642 -291 a Fw(command)146 b(line)i(\015ags,)157 b(and)147 b(randomized)f(resp)9 b(onses)147 b(to)h FA(ccrypt)-642 78 y Fw(prompts)108 b(including)g(the)g(o)9 b(ccasional)108 b FA(EOF)p Fw(.)-326 447 y(W)-27 b(e)139 b(ha)-9 b(v)g(e)138 b(collected)i(2990)d(trial)j(runs)f(at)h(a)e(sampling)h(rate)g(of)-642 744 y Fz(1)-549 816 y Fw(/)-18 b Fz(1000)o Fw(;)99 b(88)94 b(of)g(these)g(end)f(in)i(a)f(crash.)140 b(Applying)93 b(eac)-9 b(h)93 b(elimination)-642 1185 y(strategy)108 b(indep)9 b(enden)-9 b(tly)105 b(to)k(the)f(coun)-9 b(ter)107 b(traces:)-484 1887 y Fr(h)p Fe(Universal)114 b(falseho)10 b(o)g(d)p Fr(i)106 b Fw(discards)g(1569)f(coun)-9 b(ters)105 b(that)h(are)f(zero)149 2256 y(on)i(all)i(runs,)f(lea)-9 b(ving)107 b(141)g(candidate)g(predicates.)-484 2890 y Fr(h)p Fe(Lack)100 b(of)g(failing)g(coverage)p Fr(i)93 b Fw(discards)g(526)f(coun)-9 b(ter)93 b(triples)h(that)149 3260 y(are)99 b(all)h(zero)f(on)g(all)h(crashes,)i(lea)-9 b(ving)98 b(132)h(candidate)g(pred-)149 3629 y(icates.)-484 4263 y Fr(h)p Fe(Lack)132 b(of)h(failing)g(example)p Fr(i)124 b Fw(discards)g(1665)e(coun)-9 b(ters)124 b(that)g(are)149 4632 y(zero)108 b(on)f(all)i(crashes,)f(lea)-9 b(ving)107 b(45)h(candidate)f(predicates.)-484 5266 y Fr(h)p Fe(Successful)185 b(counterexample)p Fr(i)172 b Fw(discards)f(139)f(coun)-9 b(ters)171 b(that)149 5635 y(are)119 b(non-zero)g(on)g(an)-9 b(y)119 b(successful)i(run,)h(lea)-9 b(ving)119 b(1571)f(can-)149 6004 y(didate)107 b(predicates.)-326 6706 y(A)-9 b(t)80 b(\014rst)g(glance,)85 b(elimination)79 b(b)-9 b(y)79 b Fr(h)p Fd(universal)h(falseho)9 b(o)g(d)p Fr(i)79 b Fw(is)h(quite)-642 7075 y(e\013ectiv)-9 b(e)185 b(while)g(elimination)f (b)-9 b(y)185 b Fr(h)p Fd(successful)h(counterexample)p Fr(i)-642 7444 y Fw(seems)128 b(rather)g(p)9 b(o)g(or.)205 b(Ho)-9 b(w)g(ev)g(er,)132 b(these)d(t)-9 b(w)g(o)128 b(strategies)h(test)g(dis-)-642 7813 y(join)-9 b(t)134 b(prop)9 b(erties)134 b(and)f(can)h(b)9 b(e)134 b(com)-9 b(bined)133 b(to)h(go)9 b(o)g(d)133 b(e\013ect.)222 b(The)-642 8182 y(com)-9 b(bination)84 b(lea)-9 b(v)g(es)83 b(only)h(those)h (predicates)f(that)h(are)f(sometimes)-642 8551 y(observ)-9 b(ed)111 b(to)i(b)9 b(e)113 b(true)g(in)g(failed)g(runs)g(but)g(nev)-9 b(er)111 b(observ)-9 b(ed)111 b(to)j(b)9 b(e)-642 8920 y(true)84 b(in)g(successful)i(runs.)136 b(F)-27 b(or)84 b(our)g FA(ccrypt)h Fw(trials,)90 b(only)84 b(t)-9 b(w)g(o)84 b(pred-)-642 9289 y(icates)109 b(meet)f(this)h(criterion:)-308 9938 y Fi(1.)159 b(traverse.c:320:)304 b(file_exists\(\))154 b(return)e(value)f(>)f(0)-308 10254 y(2.)159 b(traverse.c:122:)304 b(xreadline\(\))153 b(return)f(value)f(==)f(0)-326 10956 y Fw(Examining)75 b(the)i(corresp)9 b(onding)74 b(co)9 b(de)76 b(sho)-9 b(ws)76 b(that)h(these)f(predi-)-642 11325 y(cates)94 b(are)e(consisten)-9 b(t)94 b(with)g(the)f (circumstances)h(under)e(whic)-9 b(h)93 b(the)-642 11694 y(bug)142 b(is)h(rep)9 b(orted)142 b(to)h(o)9 b(ccur.)249 b(This)143 b(call)h(to)f FA(file_exists\(\))h Fw(re-)-642 12063 y(turns)82 b(\\)p FA(1)p Fw(")f(when)g(an)g(output)h(\014le)f (already)g(exists.)136 b(A)82 b(con\014rmation)-642 12432 y(prompt)131 b(is)i(presen)-9 b(ted,)136 b(and)131 b(this)i(call)f(to)g FA(xreadline\(\))h Fw(returns)-642 12801 y(the)72 b(user's)i(reply)-27 b(,)79 b(or)73 b(n)-9 b(ull)72 b(if)i(the)f(input)f(terminal)h(is)g(at) g FA(EOF)p Fw(.)h(Insp)9 b(ec-)-642 13170 y(tion)93 b(of)g(the)g(co)9 b(de)93 b(immediately)g(follo)-9 b(wing)92 b(the)h FA(xreadline\(\))h Fw(call)-642 13539 y(sho)-9 b(ws)91 b(that)h(the)g(programmer)e(forgot) h(to)h(c)-9 b(hec)g(k)92 b(for)g(the)g FA(EOF)g Fw(case:)-642 13908 y(he)j(assumes)h(that)g FA(xreadline\(\))h Fw(returns)f(a)g (non-n)-9 b(ull)95 b(string,)k(and)-642 14277 y(immediately)f(insp)9 b(ects)99 b(its)h(con)-9 b(ten)g(ts.)142 b(W)-27 b(e)98 b(ha)-9 b(v)g(e)98 b(successfully)h(iso-)-642 14646 y(lated)108 b(this)h(\(kno)-9 b(wn\))107 b(bug)g(in)h FA(ccrypt)p Fw(,)h(and)f(the)g(\014x)f(is)i(clear.)-326 15015 y(While)99 b(the)f FA(file_exists\(\))h Fw(predicate)f(is)h(not)f(itself)h(the)f (cause)-642 15384 y(of)118 b(the)h(bug,)h(the)e(fact)i(that)e(it)i(app) 9 b(ears)117 b(on)g(our)h(list)i(is)f(useful)g(in-)-642 15753 y(formation.)161 b(It)115 b(represen)-9 b(ts)114 b(a)g(necessary)f(condition)g(under)g(whic)-9 b(h)-642 16123 y(crashes)83 b(o)9 b(ccur.)137 b(That)83 b(ma)-9 b(y)82 b(b)9 b(e)83 b(helpful,)88 b(for)83 b(example,)k(if)d(the)f (engi-)-642 16492 y(neer)95 b(wishes)h(to)g(repro)9 b(duce)94 b(the)i(bug)e(in-house)h(for)h(further)g(study)-27 b(.)-642 16861 y(Of)101 b(course,)i(there)d(should)g(b)9 b(e)101 b(some)f(runs)h(where)f FA(file_exists\(\))-642 17230 y Fw(rep)9 b(orts)112 b(that)g(the)f(\014le)h(exists)g(but)g FA(xreadline\(\))g Fw(returns)g(a)g(v)-18 b(alid)-642 17599 y(resp)9 b(onse)111 b(from)i(the)g(user)g(and)e(therefore)h(the)h (program)e(do)9 b(es)112 b(not)-642 17968 y(crash.)261 b(If)147 b(the)g FA(file_exists\(\))h Fw(call)g(is)f(sampled)f(on)g(an) -9 b(y)146 b(suc)-9 b(h)-642 18337 y(run,)96 b(elimination)d(b)-9 b(y)93 b Fr(h)p Fd(successful)h(counterexample)p Fr(i)h Fw(correctly)f(de-)-642 18706 y(termines)122 b(that)h(this)g(predicate) e(do)9 b(es)122 b(not)g(imply)g(failure.)187 b(It)123 b(will)-642 19075 y(b)9 b(e)104 b(eliminated)h(from)g(further)g (consideration,)h(and)e(only)g(the)h(true)-642 19444 y(\\smoking)h(gun,")g(the)h(call)h(to)f FA(xreadline\(\))p Fw(,)i(will)f(remain.)144 b(Th)-9 b(us)-642 19813 y(w)g(e)98 b(ha)-9 b(v)g(e)96 b(the)i(abilit)-9 b(y)99 b(to)f(iden)-9 b(tify)98 b(not)g(only)f(the)h(direct)h(cause)f(of)g(a)-642 20182 y(bug)105 b(but)h(also)g(related)g(b)9 b(eha)-9 b(viors)104 b(that)j(are)e(strongly)h(but)g(imp)9 b(er-)-642 20551 y(fectly)125 b(correlated)g(with)g(failure.)194 b(W)-27 b(e)124 b(further)h(explore)e(this)j(idea)-642 20920 y(of)139 b(broad)f(correlation)h(in)g(Section)g(3.3,)146 b(where)138 b(ev)-9 b(en)138 b(the)h(buggy)-642 21289 y(line)108 b(of)g(co)9 b(de)108 b(itself)i(do)9 b(es)107 b(not)h(alw)-9 b(a)g(ys)107 b(cause)h(a)g(crash.)-326 21658 y(As)f(previously)e(noted,)h(the)g(\014rst)h(three)f(elimination) g(strategies)-642 22027 y(partially)111 b(o)-9 b(v)g(erlap,)111 b(whereas)f(the)h(last,)i Fr(h)p Fd(successful)f(counterexam-)-642 22396 y(ple)p Fr(i)p Fw(,)132 b(is)127 b(distinct.)201 b Fr(h)p Fd(Universal)126 b(falseho)9 b(o)g(d)p Fr(i)126 b Fw(and)g Fr(h)p Fd(successful)h(coun-)-642 22765 y(terexample)p Fr(i)157 b Fw(only)e(lo)9 b(ok)154 b(at)h(successful)i(runs,)167 b(hence)154 b(are)g(easily)8636 5883 y @beginspecial 54 @llx 197 @lly 553 @urx 583 @ury 2391 @rwi @setspecial %%BeginDocument: applications/ds1000ngood_plot.eps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The Mathworks, Inc. %%Title: ds1000ngood_plot.eps %%CreationDate: 04/07/2003 02🔞13 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 54 197 553 583 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s /show ldef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 54 197 553 583 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0204 7344 csm 448 340 5989 4636 MR c np 91 dict begin %Colortable dictionary /c0 { 0 0 0 sr} bdef /c1 { 1 1 1 sr} bdef /c2 { 1 0 0 sr} bdef /c3 { 0 1 0 sr} bdef /c4 { 0 0 1 sr} bdef /c5 { 1 1 0 sr} bdef /c6 { 1 0 1 sr} bdef /c7 { 0 1 1 sr} bdef c0 1 j 1 sg 0 0 6913 5185 PR 6 w 0 4226 5356 0 0 -4226 899 4614 4 MP PP -5356 0 0 4226 5356 0 0 -4226 899 4614 5 MP stroke 4 w DO 0 sg 899 4614 mt 899 389 L 899 389 mt 899 389 L 1791 4614 mt 1791 389 L 1791 389 mt 1791 389 L 2684 4614 mt 2684 389 L 2684 389 mt 2684 389 L 3577 4614 mt 3577 389 L 3577 389 mt 3577 389 L 4469 4614 mt 4469 389 L 4469 389 mt 4469 389 L 5362 4614 mt 5362 389 L 5362 389 mt 5362 389 L 6255 4614 mt 6255 389 L 6255 389 mt 6255 389 L 899 4614 mt 6255 4614 L 6255 4614 mt 6255 4614 L 899 4050 mt 6255 4050 L 6255 4050 mt 6255 4050 L 899 3487 mt 6255 3487 L 6255 3487 mt 6255 3487 L 899 2924 mt 6255 2924 L 6255 2924 mt 6255 2924 L 899 2360 mt 6255 2360 L 6255 2360 mt 6255 2360 L 899 1797 mt 6255 1797 L 6255 1797 mt 6255 1797 L 899 1233 mt 6255 1233 L 6255 1233 mt 6255 1233 L 899 670 mt 6255 670 L 6255 670 mt 6255 670 L SO 6 w 899 4614 mt 6255 4614 L 899 388 mt 6255 388 L 899 4614 mt 899 388 L 6255 4614 mt 6255 388 L 899 4614 mt 6255 4614 L 899 4614 mt 899 388 L 899 4614 mt 899 4560 L 899 389 mt 899 442 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 866 4759 mt (0) s 1791 4614 mt 1791 4560 L 1791 389 mt 1791 442 L 1691 4759 mt (500) s 2684 4614 mt 2684 4560 L 2684 389 mt 2684 442 L 2551 4759 mt (1000) s 3577 4614 mt 3577 4560 L 3577 389 mt 3577 442 L 3444 4759 mt (1500) s 4469 4614 mt 4469 4560 L 4469 389 mt 4469 442 L 4336 4759 mt (2000) s 5362 4614 mt 5362 4560 L 5362 389 mt 5362 442 L 5229 4759 mt (2500) s 6255 4614 mt 6255 4560 L 6255 389 mt 6255 442 L 6122 4759 mt (3000) s 899 4614 mt 952 4614 L 6255 4614 mt 6201 4614 L 798 4658 mt (0) s 899 4050 mt 952 4050 L 6255 4050 mt 6201 4050 L 731 4094 mt (20) s 899 3487 mt 952 3487 L 6255 3487 mt 6201 3487 L 731 3531 mt (40) s 899 2924 mt 952 2924 L 6255 2924 mt 6201 2924 L 731 2968 mt (60) s 899 2360 mt 952 2360 L 6255 2360 mt 6201 2360 L 731 2404 mt (80) s 899 1797 mt 952 1797 L 6255 1797 mt 6201 1797 L 664 1841 mt (100) s 899 1233 mt 952 1233 L 6255 1233 mt 6201 1233 L 664 1277 mt (120) s 899 670 mt 952 670 L 6255 670 mt 6201 670 L 664 714 mt (140) s 899 4614 mt 6255 4614 L 899 388 mt 6255 388 L 899 4614 mt 899 388 L 6255 4614 mt 6255 388 L gs 899 389 5357 4226 MR c np 899 642 PD 51 0 899 642 2 MP stroke 51 0 899 642 2 MP stroke 0 166 988 1097 2 MP stroke 104 0 936 1097 2 MP stroke 104 0 936 1263 2 MP stroke 0 180 1077 1327 2 MP stroke 104 0 1025 1327 2 MP stroke 104 0 1025 1507 2 MP stroke 0 203 1166 1515 2 MP stroke 104 0 1114 1515 2 MP stroke 104 0 1114 1718 2 MP stroke 0 223 1256 1668 2 MP stroke 103 0 1204 1668 2 MP stroke 103 0 1204 1891 2 MP stroke 0 240 1345 1815 2 MP stroke 104 0 1293 1815 2 MP stroke 104 0 1293 2055 2 MP stroke 0 242 1434 1962 2 MP stroke 104 0 1382 1962 2 MP stroke 104 0 1382 2204 2 MP stroke 0 261 1523 2090 2 MP stroke 103 0 1472 2090 2 MP stroke 103 0 1472 2351 2 MP stroke 0 276 1613 2208 2 MP stroke 103 0 1561 2208 2 MP stroke 103 0 1561 2484 2 MP stroke 0 268 1702 2324 2 MP stroke 104 0 1650 2324 2 MP stroke 104 0 1650 2592 2 MP stroke 0 270 1791 2426 2 MP stroke 104 0 1739 2426 2 MP stroke 104 0 1739 2696 2 MP stroke 0 278 1880 2521 2 MP stroke 103 0 1829 2521 2 MP stroke 103 0 1829 2799 2 MP stroke 0 285 1970 2619 2 MP stroke 104 0 1918 2619 2 MP stroke 104 0 1918 2904 2 MP stroke 0 280 2059 2713 2 MP stroke 104 0 2007 2713 2 MP stroke 104 0 2007 2993 2 MP stroke 0 281 2148 2798 2 MP stroke 104 0 2096 2798 2 MP stroke 104 0 2096 3079 2 MP stroke 0 265 2238 2883 2 MP stroke 103 0 2186 2883 2 MP stroke 103 0 2186 3148 2 MP stroke 0 262 2327 2970 2 MP stroke 104 0 2275 2970 2 MP stroke 104 0 2275 3232 2 MP stroke 0 247 2416 3050 2 MP stroke 104 0 2364 3050 2 MP stroke 104 0 2364 3297 2 MP stroke 0 251 2505 3122 2 MP stroke 104 0 2453 3122 2 MP stroke 104 0 2453 3373 2 MP stroke 0 245 2595 3188 2 MP stroke 103 0 2543 3188 2 MP stroke 103 0 2543 3433 2 MP stroke 0 250 2684 3248 2 MP stroke 104 0 2632 3248 2 MP stroke 104 0 2632 3498 2 MP stroke 0 241 2773 3313 2 MP stroke 104 0 2721 3313 2 MP stroke 104 0 2721 3554 2 MP stroke 0 250 2862 3362 2 MP stroke 103 0 2811 3362 2 MP stroke 103 0 2811 3612 2 MP stroke 0 249 2952 3425 2 MP stroke 103 0 2900 3425 2 MP stroke 103 0 2900 3674 2 MP stroke 0 250 3041 3475 2 MP stroke 104 0 2989 3475 2 MP stroke 104 0 2989 3725 2 MP stroke 0 228 3130 3542 2 MP stroke 104 0 3078 3542 2 MP stroke 104 0 3078 3770 2 MP stroke 0 219 3219 3593 2 MP stroke 103 0 3168 3593 2 MP stroke 103 0 3168 3812 2 MP stroke 0 215 3309 3635 2 MP stroke 104 0 3257 3635 2 MP stroke 104 0 3257 3850 2 MP stroke 0 213 3398 3679 2 MP stroke 104 0 3346 3679 2 MP stroke 104 0 3346 3892 2 MP stroke 0 205 3487 3726 2 MP stroke 104 0 3435 3726 2 MP stroke 104 0 3435 3931 2 MP stroke 0 187 3577 3782 2 MP stroke 103 0 3525 3782 2 MP stroke 103 0 3525 3969 2 MP stroke 0 188 3666 3821 2 MP stroke 104 0 3614 3821 2 MP stroke 104 0 3614 4009 2 MP stroke 0 183 3755 3859 2 MP stroke 104 0 3703 3859 2 MP stroke 104 0 3703 4042 2 MP stroke 0 171 3844 3900 2 MP stroke 104 0 3792 3900 2 MP stroke 104 0 3792 4071 2 MP stroke 0 168 3934 3932 2 MP stroke 103 0 3882 3932 2 MP stroke 103 0 3882 4100 2 MP stroke 0 168 4023 3969 2 MP stroke 104 0 3971 3969 2 MP stroke 104 0 3971 4137 2 MP stroke 0 176 4112 3999 2 MP stroke 104 0 4060 3999 2 MP stroke 104 0 4060 4175 2 MP stroke 0 170 4201 4030 2 MP stroke 103 0 4150 4030 2 MP stroke 103 0 4150 4200 2 MP stroke 0 168 4291 4059 2 MP stroke 103 0 4239 4059 2 MP stroke 103 0 4239 4227 2 MP stroke 0 163 4380 4089 2 MP stroke 104 0 4328 4089 2 MP stroke 104 0 4328 4252 2 MP stroke 0 155 4469 4123 2 MP stroke 104 0 4417 4123 2 MP stroke 104 0 4417 4278 2 MP stroke 0 160 4558 4143 2 MP stroke 103 0 4507 4143 2 MP stroke 103 0 4507 4303 2 MP stroke 0 156 4648 4172 2 MP stroke 104 0 4596 4172 2 MP stroke 104 0 4596 4328 2 MP stroke 0 156 4737 4198 2 MP stroke 104 0 4685 4198 2 MP stroke 104 0 4685 4354 2 MP stroke 0 146 4826 4230 2 MP stroke 104 0 4774 4230 2 MP stroke 104 0 4774 4376 2 MP stroke 0 132 4916 4263 2 MP stroke 103 0 4864 4263 2 MP stroke 103 0 4864 4395 2 MP stroke 0 129 5005 4288 2 MP stroke 104 0 4953 4288 2 MP stroke 104 0 4953 4417 2 MP stroke 0 122 5094 4311 2 MP stroke 104 0 5042 4311 2 MP stroke 104 0 5042 4433 2 MP stroke 0 110 5183 4339 2 MP stroke 104 0 5131 4339 2 MP stroke 104 0 5131 4449 2 MP stroke 0 100 5273 4366 2 MP stroke 103 0 5221 4366 2 MP stroke 103 0 5221 4466 2 MP stroke 0 95 5362 4384 2 MP stroke 104 0 5310 4384 2 MP stroke 104 0 5310 4479 2 MP stroke 0 88 5451 4406 2 MP stroke 104 0 5399 4406 2 MP stroke 104 0 5399 4494 2 MP stroke 0 78 5540 4430 2 MP stroke 103 0 5489 4430 2 MP stroke 103 0 5489 4508 2 MP stroke 0 76 5630 4447 2 MP stroke 103 0 5578 4447 2 MP stroke 103 0 5578 4523 2 MP stroke 0 69 5719 4465 2 MP stroke 104 0 5667 4465 2 MP stroke 104 0 5667 4534 2 MP stroke 0 58 5808 4488 2 MP stroke 104 0 5756 4488 2 MP stroke 104 0 5756 4546 2 MP stroke 0 51 5897 4504 2 MP stroke 103 0 5846 4504 2 MP stroke 103 0 5846 4555 2 MP stroke 0 37 5987 4525 2 MP stroke 104 0 5935 4525 2 MP stroke 104 0 5935 4562 2 MP stroke 0 8 6076 4553 2 MP stroke 104 0 6024 4553 2 MP stroke 104 0 6024 4561 2 MP stroke 6080 4557 PD 103 0 6028 4557 2 MP stroke 103 0 6028 4557 2 MP stroke 4 0 89 14 90 13 89 13 89 18 89 14 90 16 89 19 89 18 89 16 90 22 89 22 89 19 89 24 90 26 89 27 89 26 90 27 89 22 89 31 89 27 90 28 89 28 89 34 89 37 90 31 89 35 89 35 89 39 90 48 89 42 89 43 90 40 89 47 89 56 89 50 90 63 89 53 89 61 89 62 90 63 89 75 89 72 89 85 90 78 89 85 89 91 90 102 89 99 89 103 89 112 90 126 89 137 89 148 89 155 90 163 89 200 89 237 89 538 899 642 60 MP stroke gr gs 826 569 5328 4062 MR c np 874 617 mt 924 667 L 924 617 mt 874 667 L 963 1155 mt 1013 1205 L 1013 1155 mt 963 1205 L 1052 1392 mt 1102 1442 L 1102 1392 mt 1052 1442 L 1141 1592 mt 1191 1642 L 1191 1592 mt 1141 1642 L 1231 1755 mt 1281 1805 L 1281 1755 mt 1231 1805 L 1320 1910 mt 1370 1960 L 1370 1910 mt 1320 1960 L 1409 2058 mt 1459 2108 L 1459 2058 mt 1409 2108 L 1498 2195 mt 1548 2245 L 1548 2195 mt 1498 2245 L 1588 2321 mt 1638 2371 L 1638 2321 mt 1588 2371 L 1677 2433 mt 1727 2483 L 1727 2433 mt 1677 2483 L 1766 2536 mt 1816 2586 L 1816 2536 mt 1766 2586 L 1855 2635 mt 1905 2685 L 1905 2635 mt 1855 2685 L 1945 2737 mt 1995 2787 L 1995 2737 mt 1945 2787 L 2034 2828 mt 2084 2878 L 2084 2828 mt 2034 2878 L 2123 2913 mt 2173 2963 L 2173 2913 mt 2123 2963 L 2213 2991 mt 2263 3041 L 2263 2991 mt 2213 3041 L 2302 3076 mt 2352 3126 L 2352 3076 mt 2302 3126 L 2391 3148 mt 2441 3198 L 2441 3148 mt 2391 3198 L 2480 3223 mt 2530 3273 L 2530 3223 mt 2480 3273 L 2570 3286 mt 2620 3336 L 2620 3286 mt 2570 3336 L 2659 3348 mt 2709 3398 L 2709 3348 mt 2659 3398 L 2748 3409 mt 2798 3459 L 2798 3409 mt 2748 3459 L 2837 3462 mt 2887 3512 L 2887 3462 mt 2837 3512 L 2927 3525 mt 2977 3575 L 2977 3525 mt 2927 3575 L 3016 3575 mt 3066 3625 L 3066 3575 mt 3016 3625 L 3105 3631 mt 3155 3681 L 3155 3631 mt 3105 3681 L 3194 3678 mt 3244 3728 L 3244 3678 mt 3194 3728 L 3284 3718 mt 3334 3768 L 3334 3718 mt 3284 3768 L 3373 3761 mt 3423 3811 L 3423 3761 mt 3373 3811 L 3462 3803 mt 3512 3853 L 3512 3803 mt 3462 3853 L 3552 3851 mt 3602 3901 L 3602 3851 mt 3552 3901 L 3641 3890 mt 3691 3940 L 3691 3890 mt 3641 3940 L 3730 3925 mt 3780 3975 L 3780 3925 mt 3730 3975 L 3819 3960 mt 3869 4010 L 3869 3960 mt 3819 4010 L 3909 3991 mt 3959 4041 L 3959 3991 mt 3909 4041 L 3998 4028 mt 4048 4078 L 4048 4028 mt 3998 4078 L 4087 4062 mt 4137 4112 L 4137 4062 mt 4087 4112 L 4176 4090 mt 4226 4140 L 4226 4090 mt 4176 4140 L 4266 4118 mt 4316 4168 L 4316 4118 mt 4266 4168 L 4355 4145 mt 4405 4195 L 4405 4145 mt 4355 4195 L 4444 4176 mt 4494 4226 L 4494 4176 mt 4444 4226 L 4533 4198 mt 4583 4248 L 4583 4198 mt 4533 4248 L 4623 4225 mt 4673 4275 L 4673 4225 mt 4623 4275 L 4712 4251 mt 4762 4301 L 4762 4251 mt 4712 4301 L 4801 4278 mt 4851 4328 L 4851 4278 mt 4801 4328 L 4891 4304 mt 4941 4354 L 4941 4304 mt 4891 4354 L 4980 4328 mt 5030 4378 L 5030 4328 mt 4980 4378 L 5069 4347 mt 5119 4397 L 5119 4347 mt 5069 4397 L 5158 4369 mt 5208 4419 L 5208 4369 mt 5158 4419 L 5248 4391 mt 5298 4441 L 5298 4391 mt 5248 4441 L 5337 4407 mt 5387 4457 L 5387 4407 mt 5337 4457 L 5426 4425 mt 5476 4475 L 5476 4425 mt 5426 4475 L 5515 4444 mt 5565 4494 L 5565 4444 mt 5515 4494 L 5605 4460 mt 5655 4510 L 5655 4460 mt 5605 4510 L 5694 4474 mt 5744 4524 L 5744 4474 mt 5694 4524 L 5783 4492 mt 5833 4542 L 5833 4492 mt 5783 4542 L 5872 4505 mt 5922 4555 L 5922 4505 mt 5872 4555 L 5962 4518 mt 6012 4568 L 6012 4518 mt 5962 4568 L 6051 4532 mt 6101 4582 L 6101 4532 mt 6051 4582 L 6055 4532 mt 6105 4582 L 6105 4532 mt 6055 4582 L gr gs 899 389 5357 4226 MR c np gr %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 168 FMSR 2369 4937 mt (Number of successful trials used) s 609 3618 mt -90 rotate (Number of "good" features left) s 90 rotate end eplot %%EndObject epage end showpage %%Trailer %%EOF %%EndDocument @endspecial 720 x Fv(Figure)102 b(2:)154 b(Progressiv)-10 b(e)99 b(elimination)h(b)-10 b(y)100 b Fr(h)p Fe(successful)95 b(coun-)8636 6972 y(terexample)p Fr(i)162 b Fv(as)g(successful)f(runs)h (accum)-10 b(ulate.)278 b(Crosses)8636 7341 y(mark)157 b(means;)172 b(error)158 b(bars)f(mark)g(one)f(standard)h(devia-)8636 7710 y(tion.)8636 8903 y Fw(analyzed)103 b(together.)143 b Fr(h)p Fd(Lack)106 b(of)e(failing)g(example)p Fr(i)h Fw(in)g(general)e(elim-)8636 9272 y(inates)127 b(the)f(most)h (features,)k(and)125 b(therefore)h(is)h(also)f(a)h(go)9 b(o)g(d)124 b(can-)8636 9641 y(didate)j(to)h(com)-9 b(bine)127 b(with)h Fr(h)p Fd(successful)g(counterexample)p Fr(i)p Fw(.)205 b(Doing)8636 10010 y(so)148 b(in)f(the)h(case)f(of)173 b FA(ccrypt)148 b Fw(lea)-9 b(v)g(es)146 b(us)i(with)g(exactly)f(the)g (same)8636 10379 y(t)-9 b(w)g(o)116 b(features,)h(though)d(in)i (general)e(one)g(migh)-9 b(t)115 b(\014nd)g(di\013eren)-9 b(t)114 b(re-)8636 10748 y(sults.)146 b(Elimination)108 b(b)-9 b(y)107 b Fr(h)p Fd(lack)i(of)f(failing)f(coverage)p Fr(i)p Fw(,)i(on)e(the)h(other)8636 11117 y(hand,)88 b(is)d(an)e(inheren)-9 b(tly)83 b(w)-9 b(eak)g(er)82 b(strategy:)132 b(when)83 b(com)-9 b(bined)82 b(with)8636 11486 y Fr(h)p Fd(successful)89 b(counterexample)p Fr(i)p Fw(,)94 b(w)-9 b(e)87 b(are)g(still)i(left)f(with)g(86)f(features.)8733 12344 y Fk(3.2.4)387 b(Re\002nement)97 b(o)l(ver)g(time)8953 12801 y Fw(In)107 b(order)f(to)h(gain)f(a)g(b)9 b(etter)107 b(understanding)d(of)j(ho)-9 b(w)106 b(the)h(elimi-)8636 13170 y(nation)82 b(strategies)g(b)9 b(ene\014t)80 b(from)j(increasing) e(the)h(n)-9 b(um)g(b)9 b(er)81 b(of)h(runs,)8636 13539 y(w)-9 b(e)100 b(ha)-9 b(v)g(e)99 b(exp)9 b(erimen)-9 b(ted)99 b(with)h(randomized)f(subsets)i(of)f(our)g(com-)8636 13908 y(plete)87 b(run)f(suite.)138 b(W)-27 b(e)87 b(ha)-9 b(v)g(e)85 b(seen)h(that)h(elimination)g(b)-9 b(y)86 b Fr(h)p Fd(successful)8636 14277 y(counterexample)p Fr(i)j Fw(is)d(quite)g(e\013ectiv)-9 b(e)86 b(when)f(giv)-9 b(en)84 b(a)i(few)g(thousand)8636 14646 y(successful)162 b(runs;)186 b(ho)-9 b(w)159 b(w)-9 b(ell)160 b(do)9 b(es)159 b(it)i(p)9 b(erform)159 b(with)i(a)e(smaller)8636 15015 y(suite?)165 b(W)-27 b(e)114 b(start)i(with)f(the)g(141)f(candidate)f (predicates)i(that)g(are)8636 15384 y(ev)-9 b(er)117 b(nonzero)g(on)g(an)-9 b(y)117 b(run.)173 b(W)-27 b(e)118 b(assem)-9 b(ble)117 b(a)g(random)g(subset)h(of)8636 15753 y(\014ft)-9 b(y)111 b(successful)h(runs)f(and)e(\014lter)i(the)g (predicate)f(set)h(using)g(elimi-)8636 16123 y(nation)96 b(b)-9 b(y)95 b Fr(h)p Fd(successful)i(counterexample)p Fr(i)p Fw(.)143 b(W)-27 b(e)96 b(then)g(add)f(another)8636 16492 y(\014ft)-9 b(y)94 b(runs,)i(and)c(another)g(\014ft)-9 b(y)-27 b(,)96 b(and)d(so)g(on)f(in)i(steps)f(up)g(to)g(the)g(full)8636 16861 y(set)139 b(of)g(2902)e(successful)j(runs.)236 b(W)-27 b(e)138 b(rep)9 b(eat)138 b(this)h(en)-9 b(tire)139 b(pro)9 b(cess)8636 17230 y(one)99 b(h)-9 b(undred)98 b(times)i(to)g(gauge)e(ho)-9 b(w)98 b(rapidly)h(one)g(can)h(exp)9 b(ect)99 b(the)8636 17599 y(predicate)108 b(set)h(to)f(shrink)g(as)g (more)g(runs)g(arriv)-9 b(e)107 b(o)-9 b(v)g(er)108 b(time.)8953 17968 y(Figure)132 b(2)g(sho)-9 b(ws)132 b(the)h(results.)218 b(The)132 b(crosses)h(mark)f(the)h(mean)8636 18337 y(n)-9 b(um)g(b)9 b(er)112 b(of)h(predicates)f(remaining,)h(while)g(the)f(v)-9 b(ertical)113 b(bars)g(ex-)8636 18706 y(tend)76 b(one)g(standard)f (deviation)g(ab)9 b(o)-9 b(v)g(e)75 b(and)g(b)9 b(elo)-9 b(w)75 b(the)i(mean.)132 b(The)8636 19075 y(short)87 b(v)-9 b(ertical)86 b(bars)g(in)h(this)f(case)h(tells)g(us)f(that)g (there)g(is)h(relativ)-9 b(ely)8636 19444 y(little)90 b(div)-9 b(ersit)g(y)88 b(in)h(eac)-9 b(h)87 b(of)i(the)f(h)-9 b(undred)86 b(random)h(subsets)h(at)h(an)-9 b(y)8636 19813 y(giv)g(en)98 b(size.)142 b(The)98 b(results)i(sho)-9 b(w)98 b(that,)j(on)d(a)-9 b(v)g(erage,)99 b(1750)e(runs)h(are)8636 20182 y(enough)158 b(to)i(isolate)g(t)-9 b(w)g(en)g(t)g(y)159 b(candidate)g(features,)172 b(another)159 b(500)8636 20551 y(runs)139 b(reduces)f(that)h(coun)-9 b(t)139 b(b)-9 b(y)138 b(half,)147 b(and)138 b(a)g(total)i(of)f(2600)e(runs)8636 20920 y(is)132 b(enough)d(to)i(narro)-9 b(w)131 b(the)f(set)i(of)f(go)9 b(o)g(d)130 b(features)h(do)-9 b(wn)130 b(to)h(just)8636 21289 y(\014v)-9 b(e.)160 b(One)113 b(w)-9 b(ould)112 b(exp)9 b(ect)113 b(more)g(v)-18 b(ariet)-9 b(y)113 b(in)g(runs)g (collected)h(from)8636 21658 y(real)121 b(users)h(rather)f(than)f(an)h (automated)f(script.)185 b(Greater)121 b(div)-9 b(er-)8636 22027 y(sit)g(y)112 b(can)f(only)f(b)9 b(ene\014t)109 b(the)i(analysis,)g(as)g(it)h(w)-9 b(ould)110 b(pro)-9 b(vide)109 b(more)8636 22396 y(no)-9 b(v)g(el)161 b(coun)-9 b(terexamples)159 b(and)i(therefore)f(ma)-9 b(y)161 b(eliminate)g(more) 8636 22765 y(unin)-9 b(teresting)108 b(predicates)g(more)f(rapidly)-27 b(.)p eop %%Page: 9 9 9 8 bop -545 -291 a Fk(3.2.5)386 b(P)-31 b(erformance)99 b(Impact)-326 166 y Fw(Instrumen)-9 b(ting)93 b(function)g(return)f(v) -18 b(alues)92 b(confounds)g(sev)-9 b(eral)92 b(of)-642 535 y(the)134 b(optimizations)i(prop)9 b(osed)132 b(in)j(Section)g(2.) 223 b(If)136 b(most)f(function)-642 904 y(calls)153 b(are)e(instrumen) -9 b(tation)151 b(sites,)163 b(and)151 b(if)h(most)g(function)g(calls) -642 1273 y(terminate)103 b(acyclic)h(regions,)g(then)e(most)i(acyclic) g(regions)e(con)-9 b(tain)-642 1642 y(only)85 b(a)g(single)h(site)h (and)d(w)-9 b(e)86 b(ha)-9 b(v)g(e)84 b(p)9 b(o)g(or)85 b(amortization)h(of)g(sampling)-642 2011 y(o)-9 b(v)g(erhead.)167 b(F)-27 b(urthermore,)119 b FA(ccrypt)e Fw(is)g(built)g(one)f(ob)18 b(ject)117 b(\014le)g(at)f(a)-642 2380 y(time,)162 b(and)149 b(w)-9 b(e)150 b(m)-9 b(ust)151 b(conserv)-18 b(ativ)-9 b(ely)149 b(assume)h(that)h(an)-9 b(y)149 b(cross-)-642 2749 y(ob)18 b(ject)152 b(function)g(call)g(is)g(not)g(w)-9 b(eigh)g(tless.)275 b(Th)-9 b(us,)162 b(for)152 b(m)-9 b(uc)g(h)151 b(of)-642 3119 y FA(ccrypt)p Fw(,)124 b(our)119 b(sampling)h(transformation)f(dev)-9 b(olv)g(es)119 b(to)h(a)g(simpler) -642 3488 y(but)k(slo)-9 b(w)g(er)124 b(pattern)g(of)g(c)-9 b(hec)g(king)123 b(the)i(next-sample)e(coun)-9 b(tdo)g(wn)-642 3857 y(at)108 b(eac)-9 b(h)108 b(and)f(ev)-9 b(ery)107 b(site.)-326 4226 y(In)81 b(spite)g(of)f(this,)87 b(the)80 b(p)9 b(erformance)79 b(impact)i(of)g(sampled)e(instru-)-642 4595 y(men)-9 b(tation)111 b(is)i(minimal.)157 b(Using)112 b(an)g(exp)9 b(erimen)-9 b(tal)110 b(setup)i(similar)-642 4964 y(to)131 b(that)g(describ)9 b(ed)130 b(earlier)g(in)h(Section)f (3.1.1,)136 b(w)-9 b(e)131 b(\014nd)e(that)i(the)-642 5333 y(o)-9 b(v)g(erhead)132 b(for)1273 5261 y Fz(1)1366 5333 y Fw(/)-18 b Fz(1000)134 b Fw(sampling)g(is)i(less)f(than)f (4\045,)142 b(and)134 b(progres-)-642 5702 y(siv)-9 b(ely)133 b(sparser)g(sampling)g(rates)g(shrink)g(this)i(still)g(further.)220 b(Un-)-642 6071 y(conditional)86 b(instrumen)-9 b(tation)86 b(also)g(p)9 b(erforms)86 b(w)-9 b(ell)87 b(here,)j(making)-642 6440 y(either)j(reasonable)f(for)i(this)g(particular)g(application.)139 b(In)94 b(the)g(next)-642 6809 y(section,)143 b(though,)f(w)-9 b(e)135 b(consider)h(a)f(more)g(in)-9 b(v)-18 b(asiv)-9 b(e)135 b(instrumen)-9 b(ta-)-642 7178 y(tion)95 b(strategy)f(that)h (requires)f(sampling)f(to)i(k)-9 b(eep)93 b(o)-9 b(v)g(erhead)92 b(under)-642 7547 y(con)-9 b(trol.)-642 8199 y Fx(3.3)422 b(Statistical)108 b(Deb)-8 b(ugging)-326 8656 y Fw(In)92 b(this)g(section)f(w)-9 b(e)91 b(consider)g(the)g(automatic)g (isolation)g(of)h(non-)-642 9025 y(deterministic)j(bugs.)140 b(Recall)95 b(from)f(Section)g(1)h(that)f(a)g(bug)g(is)h(non-)-642 9394 y(deterministic)153 b(with)f(resp)9 b(ect)153 b(to)f(a)f(set)i(of) f(program)e(predicates)-642 9763 y(if)141 b(no)e(predicate)g(in)h(the)g (set)h(is)f(p)9 b(erfectly)140 b(correlated)g(with)g(pro-)-642 10132 y(gram)98 b(crashes.)141 b(F)-27 b(or)98 b(this)h(case)g(study)f (w)-9 b(e)98 b(use)g(v)-9 b(ersion)97 b(1.06)h(of)g(the)-642 10501 y(GNU)129 b(implemen)-9 b(tation)129 b(of)154 b FA(bc)p Fw(.)209 b(W)-27 b(e)129 b(\014nd)f(that)i(feeding)j FA(bc)d Fw(nine)-642 10870 y(megab)-9 b(ytes)125 b(of)j(random)d(input) i(causes)g(it)i(to)e(crash)g(roughly)f(one)-642 11239 y(time)149 b(in)g(four)f(from,)160 b(as)148 b(it)i(turns)f(out,)159 b(a)148 b(previously)g(unkno)-9 b(wn)-642 11608 y(bu\013er)147 b(o)-9 b(v)g(errun)146 b(error.)265 b(Since)148 b FA(bc)g Fw(sometimes)g(terminates)g(suc-)-642 11977 y(cessfully)120 b(ev)-9 b(en)118 b(when)g(it)j(o)-9 b(v)g(erruns)118 b(the)h(bu\013er,)i(this)f(bug)f(is)h(non-)-642 12346 y(deterministic.)-326 12715 y(W)-27 b(e)94 b(instrumen)-9 b(t)94 b FA(bc)h Fw(using)e(a)h(v)-18 b(ariation)94 b(on)f(our)h (previous)f(strat-)-642 13084 y(egy)71 b(of)h(coun)-9 b(ter)72 b(triples.)133 b(W)-27 b(e)72 b(abandon)d(elimination)j(b)-9 b(y)71 b Fr(h)p Fd(successful)-642 13453 y(counterexample)p Fr(i)1597 13319 y Fz(1)1857 13453 y Fw(in)111 b(fa)-9 b(v)g(or)110 b(of)h(statistical)i(mo)9 b(deling)110 b(to)h(iden)-9 b(tify)-642 13822 y(b)9 b(eha)-9 b(vior)106 b(that)j(is)g(broadly)d (correlated)i(with)h(failure.)-545 14474 y Fk(3.3.1)386 b(Instrumentation)101 b(Str)-6 b(ate)-15 b(gy)-326 14931 y Fw(W)-27 b(e)141 b(instrumen)-9 b(t)140 b FA(bc)h Fw(to)g(guess)f (and)g(randomly)f(c)-9 b(hec)g(k)140 b(a)h(large)-642 15300 y(n)-9 b(um)g(b)9 b(er)161 b(of)h(predicates.)306 b(As)162 b(b)9 b(efore,)175 b(our)161 b(goal)g(is)i(to)f(iden)-9 b(tify)-642 15669 y(predicates)131 b(that)h(capture)f(bad)f(b)9 b(eha)-9 b(vior:)190 b(false)132 b(when)e(the)h(pro-)-642 16038 y(gram)95 b(succeeds)h(and)f(true)g(when)g(the)h(program)e (crashes.)141 b(W)-27 b(e)95 b(cast)-642 16407 y(an)90 b(extremely)h(broad)f(net,)k(but)e(with)f(an)g(ey)-9 b(e)90 b(to)-9 b(w)g(ard)90 b(p)9 b(oin)-9 b(ter)91 b(and)-642 16776 y(bu\013er)c(errors.)138 b(F)-27 b(or)88 b(p)9 b(oin)-9 b(ters,)92 b(n)-9 b(ull)88 b(p)9 b(oin)-9 b(ters)88 b(are)g(of)g(in)-9 b(terest.)138 b(Rel-)-642 17145 y(ativ)-9 b(e)84 b(addresses)f(of)i(p)9 b(oin)-9 b(ters)84 b(ma)-9 b(y)83 b(b)9 b(e)84 b(in)-9 b(teresting)84 b(as)g(w)-9 b(ell,)90 b(as)84 b(this)-642 17514 y(ma)-9 b(y)108 b(capture)h(cases)g (where)f(one)f(p)9 b(oin)-9 b(ter)109 b(scans)g(within)g(a)g(second) -642 17884 y(p)9 b(oin)-9 b(ted-to)146 b(bu\013er.)258 b(Chec)-9 b(king)145 b(p)9 b(oin)-9 b(ter/p)9 b(oin)-9 b(ter)145 b(equalit)-9 b(y)146 b(ma)-9 b(y)-642 18253 y(rev)g(eal)119 b(aliasing)g(that,)k(when)c(not)g(an)-9 b(ticipated)119 b(b)-9 b(y)120 b(the)f(program-)-642 18622 y(mer,)113 b(can)e(lead)g(to)h(dangling)e(\\wild")i(p)9 b(oin)-9 b(ter)111 b(bugs.)154 b(Scalar)112 b(v)-18 b(ari-)-642 18991 y(ables)142 b(serv)-9 b(e)142 b(as)h(arra)-9 b(y)142 b(indexes,)151 b(p)9 b(oin)-9 b(ter)142 b(o\013sets,)152 b(and)141 b(in)i(man)-9 b(y)-642 19360 y(other)143 b(roles;)162 b(relationships)143 b(among)f(scalars)j(ma)-9 b(y)143 b(rev)-9 b(eal)142 b(bu\013er)-642 19729 y(o)-9 b(v)g(erruns,)97 b(unan)-9 b(ticipated)94 b(consequences)f(of)j(negativ)-9 b(e)93 b(v)-18 b(alues,)98 b(in-)-642 20098 y(v)-18 b(alid)96 b(en)-9 b(umeration)95 b(constan)-9 b(ts,)99 b(or)e(a)f(v)-18 b(ariet)-9 b(y)96 b(of)g(other)h(problems.)-326 20467 y(A)-9 b(t)116 b(an)-9 b(y)115 b(direct)i(assignmen)-9 b(t)115 b(to)h(a)g(scalar)g(v)-18 b(ariable)115 b FA(a)p Fw(,)j(w)-9 b(e)115 b(iden-)-642 20836 y(tify)134 b(all)f(other)g(lo)9 b(cal)133 b(or)g(global)g(v)-18 b(ariables)132 b Fr(f)p FA(b)5230 20871 y Fz(1)5376 20836 y Fq(;)54 b FA(b)5686 20871 y Fz(2)5833 20836 y Fq(;)g(:)h(:)f(:)h(;)f FA(b)6721 20871 y Fm(n)6901 20836 y Fr(g)133 b Fw(that)-642 21205 y(are)79 b(also)h(in)f(scop)9 b(e)80 b(and)f(that)g(ha)-9 b(v)g(e)79 b(the)g(same)g(t)-9 b(yp)9 b(e.)135 b(W)-27 b(e)79 b(then)h(com-)-642 21574 y(pare)108 b(the)g(up)9 b(dated)107 b FA(a)i Fw(to)g(eac)-9 b(h)108 b FA(b)3487 21609 y Fm(i)3599 21574 y Fw(,)h(and)e(note)i(whether)e FA(a)i Fw(w)-9 b(as)109 b(less)p -642 21771 3374 15 v -626 21998 a Fz(1)-480 22132 y Fw(Because)144 b(the)g(bug)f(is)i (non-deterministic,)153 b(if)145 b(w)-9 b(e)144 b(ha)-9 b(v)g(e)142 b(enough)-642 22449 y(runs)179 b(no)f(predicates)h(will)h (satisfy)f(elimination)g(b)-9 b(y)178 b Fr(h)p Fd(successful)-642 22765 y(counterexample)p Fr(i)p Fw(.)8636 -291 y(than,)115 b(equal)e(to,)i(or)f(greater)f(than)g FA(b)13293 -256 y Fm(i)13404 -291 y Fw(.)162 b(W)-27 b(e)113 b(compare)g(p)9 b(oin)-9 b(ters)113 b(to)8636 78 y(same-t)-9 b(yp)9 b(ed)101 b(p)9 b(oin)-9 b(ters)101 b(as)h(w)-9 b(ell,)104 b(and)d(additionally)f (compare)h(eac)-9 b(h)8636 447 y(p)9 b(oin)-9 b(ter)133 b(for)f(equalit)-9 b(y)132 b(with)h(n)-9 b(ull.)218 b(One)132 b(comparison)g(b)9 b(et)-9 b(w)g(een)131 b FA(a)8636 816 y Fw(and)145 b FA(b)9472 851 y Fm(i)9583 816 y Fw(,)156 b(whic)-9 b(h)145 b(bumps)g(one)f(of)i(three)f(coun)-9 b(ters,)155 b(is)146 b(considered)8636 1185 y(to)102 b(b)9 b(e)101 b(one)f(instrumen)-9 b(tation)101 b(site)h(sub)18 b(ject)102 b(to)g(random)e(sampling.)8636 1555 y(When)112 b(an)f(instrumen)-9 b(ted)112 b(application)f(terminates,)j(it)f(emits) g(the)8636 1924 y(v)-9 b(ector)84 b(of)g(coun)-9 b(ter)83 b(triples)h(along)e(with)i(a)g(\015ag)e(indicating)i(whether)8636 2293 y(it)110 b(completed)d(successfully)i(or)f(w)-9 b(as)108 b(ab)9 b(orted)107 b(b)-9 b(y)108 b(a)g(fatal)g(signal.)8953 2662 y(F)-27 b(or)92 b FA(bc)h Fw(there)f(are)g(10,050)f(coun)-9 b(ter)92 b(triples,)97 b(or)92 b(30,150)f(coun)-9 b(ters)8636 3031 y(in)118 b(all.)172 b(The)116 b(v)-18 b(ast)117 b(ma)18 b(jorit)-9 b(y)118 b(of)f(these)g(are)g(of)g(no)f(in)-9 b(terest:)164 b(either)8636 3400 y(they)153 b(compare)g(completely)g (unrelated)f(v)-18 b(ariables,)165 b(or)153 b(they)g(ex-)8636 3769 y(press)86 b(relationships)f(that)h(b)9 b(eha)-9 b(v)g(e)83 b(iden)-9 b(tically)86 b(in)f(b)9 b(oth)85 b(successful)8636 4138 y(and)112 b(failed)h(runs.)158 b(The)112 b(c)-9 b(hallenge)112 b(is)i(to)f(\014nd)e(the)i(few)g (predicates)8636 4507 y(that)c(matter.)8733 5333 y Fk(3.3.2)387 b(Cr)-6 b(ash)98 b(Pr)-14 b(ediction)99 b(Using)f(Lo)l(gistic)h(Re)-15 b(gr)h(ession)8953 5790 y Fw(T)-27 b(o)110 b(\014nd)f(the)i(imp)9 b(ortan)-9 b(t)110 b(predicates,)h(w)-9 b(e)110 b(recast)h(bug)f (isolation)8636 6159 y(as)153 b(a)f(statistical)i(analysis)e(problem.) 276 b(Eac)-9 b(h)152 b(run)g(of)177 b FA(bc)152 b Fw(consti-)8636 6528 y(tutes)82 b(one)e(sample)h(p)9 b(oin)-9 b(t)80 b(consisting)i(of)f(30,150)e(observ)-9 b(ed)80 b Fu(fe)-17 b(atur)g(es)8636 6897 y Fw(\(coun)-9 b(ters\))167 b(and)e(one)g(binary) g Fu(outc)-17 b(ome)191 b Fw(\(0)c(=)g(succeeded)o Fq(;)54 b Fw(1)187 b(=)8636 7266 y(crashed\).)199 b(Giv)-9 b(en)126 b(n)-9 b(umerous)124 b(data)i(p)9 b(oin)-9 b(ts)126 b(\(sampled)g (runs\),)131 b(w)-9 b(e)8636 7635 y(w)g(an)g(t)143 b(to)f(iden)-9 b(tify)143 b(a)f(subset)h(of)g(our)f(30,150)f(features)h(that)h(pre-) 8636 8004 y(dict)87 b(the)f(outcome.)137 b(This)86 b(is)g(equiv)-18 b(alen)-9 b(t)85 b(to)h(the)g(mac)-9 b(hine)85 b(learning)8636 8373 y(problem)g(of)h(learning)e(a)h(binary)g(classi\014er)h(with)g (feature)f(selection,)8636 8742 y(i.e.,)110 b(using)d(as)h(few)h(input) e(features)h(as)h(p)9 b(ossible.)8953 9111 y(In)146 b(the)g (classi\014cation)h(setting,)157 b(w)-9 b(e)145 b(tak)-9 b(e)146 b(a)g(set)h(of)f(data)f(with)8636 9480 y(kno)-9 b(wn)105 b(binary)h(output)g(\(a)h(training)g(set\),)h(and)d(attempt)i (to)g(learn)8636 9849 y(a)112 b(binary)e(classi\014er)i(that)g(giv)-9 b(es)110 b(go)9 b(o)g(d)110 b(predictions)i(on)e(a)i(test)g(set.)8636 10218 y(The)98 b(learning)g(pro)9 b(cess)98 b(usually)h(in)-9 b(v)g(olv)g(es)97 b(additional)h(parameters)8636 10587 y(whose)89 b(v)-18 b(alues)89 b(can)g(b)9 b(e)89 b(determined)g(using)g (a)g(cross-v)-18 b(alidation)90 b(set.)8636 10956 y(In)122 b(our)g(case,)k(the)121 b(end)g(goal)g(is)i(to)f(narro)-9 b(w)121 b(do)-9 b(wn)121 b(the)g(set)i(of)f(fea-)8636 11325 y(tures.)212 b(Hence)129 b(our)h(metho)9 b(d)129 b(m)-9 b(ust)131 b(balance)e(go)9 b(o)g(d)129 b(classi\014cation)8636 11694 y(p)9 b(erformance)107 b(with)i(aggressiv)-9 b(e)107 b(feature)g(selection.)8953 12063 y(A)91 b(binary)f(classi\014er)i(tak) -9 b(es)91 b(feature)g(v)-18 b(alues)90 b(as)h(inputs,)k(and)c(out-) 8636 12432 y(puts)136 b(a)g(prediction)f(of)h(either)g(0)g(or)f(1.)227 b Fu(L)-17 b(o)g(gistic)142 b(r)-17 b(e)g(gr)g(ession)162 b Fw([17])8636 12801 y(is)108 b(a)e(metho)9 b(d)105 b(of)i(learning)e (a)h(binary)f(classi\014er)j(where)d(the)h(output)8636 13170 y(function)101 b(is)g(assumed)e(to)h(b)9 b(e)100 b(logistic.)143 b(The)100 b(logistic)i(function)e(is)h(a)8636 13539 y(con)-9 b(tin)g(uous)89 b(\\S"-shap)9 b(ed)86 b(curv)-9 b(e)89 b(approac)-9 b(hing)86 b(0)j(on)g(one)f(end,)k(and) 8636 13908 y(1)132 b(on)e(the)i(other.)213 b(The)131 b(output)g(can)g(b)9 b(e)131 b(in)-9 b(terpreted)131 b(as)g(a)g(prob-)8636 14277 y(abilit)-9 b(y)125 b(measure)e(of)h(ho)-9 b(w)123 b(lik)-9 b(ely)124 b(it)h(is)g(that)f(the)g(data)f(p)9 b(oin)-9 b(t)124 b(falls)8636 14646 y(within)146 b(class)h(0)e(or)g(1.) 256 b(Quan)-9 b(tizing)145 b(the)g(logistic)i(function)f(out-)8636 15015 y(put)100 b(then)g(giv)-9 b(es)100 b(us)g(a)g(binary)f (classi\014er:)141 b(if)101 b(the)f(output)g(is)g(greater)8636 15384 y(than)9374 15312 y Fz(1)9466 15384 y Fw(/)-18 b Fz(2)p Fw(,)91 b(then)86 b(the)h(data)f(p)9 b(oin)-9 b(t)86 b(is)i(classi\014ed)f(as)g(class)g(1)g(\(a)g(crash\),)8636 15753 y(otherwise)129 b(it)h(falls)h(under)d(class)i(0)f(\(a)h (successful)g(run\).)208 b(F)-27 b(eature)8636 16123 y(selection)142 b(can)g(b)9 b(e)141 b(ac)-9 b(hiev)g(ed)140 b(b)-9 b(y)141 b Fu(r)-17 b(e)g(gularizing)170 b Fw(the)141 b(function)h(pa-)8636 16492 y(rameters)110 b(to)g(ignore)f(most)h (input)g(features,)g(forcing)g(it)h(to)f(form)g(a)8636 16861 y(mo)9 b(del)111 b(that)g(predicts)h(success)g(or)f(failure)g (using)f(just)i(a)f(small)g(se-)8636 17230 y(lection)106 b(of)e(sampled)g(features.)143 b(Regularization)105 b(is)g(imp)9 b(ortan)-9 b(t)104 b(for)8636 17599 y(our)77 b(purp)9 b(oses)76 b(b)9 b(ecause)76 b(w)-9 b(e)76 b(exp)9 b(ect)77 b(that)g(most)h(of)f(our)f(features)h(are)8636 17968 y(wild)90 b(guesses,)i(but)d(that)g(there)f(ma)-9 b(y)88 b(b)9 b(e)89 b(just)g(a)g(few)g(that)g(correctly)8636 18337 y(c)-9 b(haracterize)109 b(the)f(bug.)8953 18706 y(While)167 b(other)g(tec)-9 b(hniques)166 b(for)i(com)-9 b(bined)166 b(classi\014cation)i(and)8636 19075 y(feature)158 b(selection)g(exist,)170 b(few)158 b(of)g(them)f(are)g(particularly)h (w)-9 b(ell-)8636 19444 y(suited)147 b(for)f(this)h(problem.)258 b(Some)145 b(metho)9 b(ds)146 b([15,)155 b(24])146 b(calculate)8636 19813 y(a)153 b(univ)-18 b(ariate)152 b(correlation)g(co)9 b(e\016cien)-9 b(t)153 b(indep)9 b(enden)-9 b(tly)150 b(for)j(eac)-9 b(h)8636 20182 y(feature;)119 b(other)114 b(metho)9 b(ds,)116 b(suc)-9 b(h)115 b(as)g(decision)g(trees)g([6],)j (are)c(more)8636 20551 y(computationally)120 b(in)-9 b(tensiv)g(e.)183 b(In)121 b(our)f(dataset,)125 b(the)120 b(features)h(are)8636 20920 y(clearly)138 b(not)g(indep)9 b(enden)-9 b(t)135 b(of)j(eac)-9 b(h)137 b(other,)145 b(and)137 b(the)g(size)i(of)f(the)8636 21289 y(problem)98 b(can)h(p)9 b(oten)-9 b(tially)98 b(b)9 b(e)98 b(to)9 b(o)99 b(large)f(for)h(more)f(computation-)8636 21658 y(ally)j(in)-9 b(tensiv)g(e)100 b(metho)9 b(ds.)141 b(F)-27 b(urthermore,)102 b(logistic)g(regression)e(is)h(a)8636 22027 y(discriminativ)-9 b(e)75 b(classi\014cation)f(metho)9 b(d,)80 b(and)72 b(th)-9 b(us)74 b(do)9 b(es)73 b(not)g(mak)-9 b(e)8636 22396 y(an)g(y)80 b(assumptions)h(ab)9 b(out)80 b(the)h(underlying)e(distribution)j(of)f(the)g(in-)8636 22765 y(put.)140 b(This)95 b(is)g(crucial)g(since)f(our)g(features)g (arise)g(from)h(a)f(decidedly)p eop %%Page: 10 10 10 9 bop -642 -291 a Fw(arti\014cial)92 b(pro)9 b(cess)92 b(and)e(w)-9 b(ould)90 b(b)9 b(e)91 b(di\016cult)h(to)g(c)-9 b(haracterize)92 b(using)-642 78 y(simple)108 b(distributions.)-326 447 y(Supp)9 b(ose)165 b(our)h(training)g(set)i Fr(D)175 b Fw(consists)168 b(of)f Fq(M)201 b Fw(data)166 b(p)9 b(oin)-9 b(ts)-642 816 y(\()p Fq(x)-332 851 y Fz(1)-185 816 y Fq(;)55 b(y)120 851 y Fz(1)266 816 y Fw(\))p Fq(;)g(:)f(:)h(:)f (;)h Fw(\()p Fq(x)1425 851 y Fm(M)1711 816 y Fq(;)f(y)2015 851 y Fm(M)2301 816 y Fw(\),)96 b(where)91 b(eac)-9 b(h)91 b Fq(x)4436 851 y Fm(i)4639 816 y Fr(2)f Fc(R)5174 682 y Fm(N)5510 816 y Fw(denotes)h(a)h(v)-9 b(ector)-642 1185 y(of)143 b(input)f(predicate)g(coun)-9 b(ters,)151 b(and)142 b(eac)-9 b(h)142 b Fq(y)5128 1220 y Fm(i)5387 1185 y Fw(=)148 b Fr(f)p Fw(0)p Fq(;)53 b Fw(1)p Fr(g)142 b Fw(denotes)-642 1555 y(the)124 b(corresp)9 b(onding)123 b(output)h(lab)9 b(el.)193 b(T)-27 b(o)124 b(learn)g(a)g(go)9 b(o)g(d)123 b(classi\014er,)-642 1924 y(w)-9 b(e)108 b(can)g(maximize)g(the)g Fu(lo)-17 b(g)117 b(likeliho)-17 b(o)g(d)141 b Fw(of)108 b(the)g(training)g(set.)407 2803 y Fq(LL)p Fw(\()p Fr(D)9 b Fw(\))164 b(=)2042 2407 y Fm(M)1941 2502 y Fo(X)1965 3169 y Fm(i)p Fz(=1)2464 2803 y Fw([)q Fq(y)2715 2838 y Fm(i)2880 2803 y Fw(log)59 b Fq(P)45 b Fw(\()p Fq(Y)162 b Fw(=)90 b(1)p Fr(j)p Fq(x)p Fw(\))2302 3603 y(+\(1)72 b Fr(\000)g Fq(y)3401 3638 y Fm(i)3513 3603 y Fw(\))54 b(log)t(\(1)72 b Fr(\000)g Fq(P)45 b Fw(\()p Fq(Y)163 b Fw(=)90 b(1)p Fr(j)p Fq(x)p Fw(\)\)])p Fq(:)-326 4177 y Fw(Here)76 b(the)g(output)g(lab)9 b(els)76 b Fq(y)3015 4212 y Fm(i)3204 4177 y Fw(are)f(used)h(as)h (indicator)f(functions)h(to)-642 4546 y(zero)107 b(out)f(exactly)h(one) f(of)g(the)h(t)-9 b(w)g(o)107 b(terms)g(in)g(eac)-9 b(h)106 b(summand.)143 b(In)-642 4915 y(logistic)125 b(regression,)i(the)d (distribution)g Fq(P)45 b Fw(\()p Fq(Y)188 b Fw(=)116 b(1)p Fr(j)p Fq(x)p Fw(\))124 b(is)h(mo)9 b(deled)-642 5324 y(as)138 b(the)g(logistic)i(function)f Fq(\026)3046 5357 y Fz(~)3011 5413 y Fm(\014)3186 5324 y Fw(\()p Fq(x)p Fw(\))h(with)e(parameters)6291 5241 y(~)6246 5324 y Fq(\014)157 b Fw(=)141 b Fr(h)p Fq(\014)7289 5359 y Fz(0)7576 5324 y Fr(2)-642 5768 y Fc(R)p Fq(;)55 b(\014)107 b Fr(2)90 b Fc(R)556 5633 y Fm(N)801 5768 y Fr(i)p Fw(.)392 6498 y Fq(P)45 b Fw(\()p Fq(Y)163 b Fw(=)90 b(1)p Fr(j)p Fq(x)p Fw(\))h(=)f Fq(\026)2694 6531 y Fz(~)2659 6587 y Fm(\014)2834 6498 y Fw(\()p Fq(x)p Fw(\))i(=)5105 6294 y(1)p 3747 6426 2880 14 v 3747 6713 a(1)72 b(+)g(exp)o(\()p Fr(\000)p Fq(\014)5366 6748 y Fz(0)5585 6713 y Fr(\000)g Fq(\014)6109 6622 y Fm(T)6316 6713 y Fq(x)p Fw(\))6668 6498 y Fq(:)-326 7255 y Fw(The)126 b(logistic)i(parameters)e Fq(\014)3368 7290 y Fz(0)3641 7255 y Fw(and)g Fq(\014)144 b Fw(tak)-9 b(e)126 b(on)g(the)g(resp)9 b(ectiv)-9 b(e)-642 7624 y(roles)118 b(as)g(the)g(in)-9 b(tercept)119 b(and)e(slop)9 b(e)117 b(of)i(the)f(classi\014er,)j(and)c(essen-)-642 7993 y(tially)135 b(w)-9 b(eigh)132 b(the)i(relativ)-9 b(e)134 b(imp)9 b(ortance)133 b(of)h(eac)-9 b(h)134 b(feature)f(in)h (the)-642 8362 y(\014nal)90 b(outcome.)139 b(W)-27 b(e)91 b(exp)9 b(ect)90 b(most)i(of)f(the)g(input)g(features)g(to)h(ha)-9 b(v)g(e)-642 8731 y(no)132 b(in\015uence)f(o)-9 b(v)g(er)132 b(the)g(success)i(or)f(failure)f(of)h(the)f(program,)138 b(so)-642 9100 y(w)-9 b(e)92 b(place)h(an)f(additional)g(constrain)-9 b(t)93 b(that)g(forces)g(most)g(of)g(the)g Fq(\014)16 b Fw('s)-642 9469 y(to)-9 b(w)g(ard)105 b(zero.)144 b(This)105 b(is)i(accomplished)e(b)-9 b(y)105 b(subtracting)h(a)f(p)9 b(enalt)-9 b(y)-642 9838 y(term)113 b(based)f(on)g(the)g Fq(`)2204 9873 y Fz(1)2464 9838 y Fw(norm)g Fr(k)3527 9754 y Fw(~)3481 9838 y Fq(\014)17 b Fr(k)3844 9873 y Fz(1)4088 9838 y Fw(=)4438 9601 y Fo(P)4782 9687 y Fm(M)4782 9934 y(j)12 b Fz(=0)5245 9838 y Fr(j)p Fq(\014)5518 9873 y Fm(j)5656 9838 y Fr(j)p Fw(.)159 b(W)-27 b(e)113 b(can)g(tune)-642 10207 y(the)77 b(imp)9 b(ortance)77 b(of)h(this)h Fu(r)-17 b(e)g(gularization)88 b(term)102 b Fw(through)77 b(a)g Fu(r)-17 b(e)g(gular-)-642 10576 y(ization)126 b(p)-17 b(ar)g(ameter)156 b Fq(\025)p Fw(.)182 b(The)120 b(p)9 b(enalized)120 b(log)g(lik)-9 b(eliho)9 b(o)g(d)120 b(function)-642 10945 y(is:)-542 11763 y Fq(LL)p Fw(\()72 11679 y(~)26 11763 y Fq(\014)18 b Fr(jD)9 b Fq(;)55 b(\025)p Fw(\))162 b(=)1680 11367 y Fm(M)1580 11462 y Fo(X)1604 12129 y Fm(i)p Fz(=1)2103 11763 y Fw([)p Fq(y)2353 11798 y Fm(i)2519 11763 y Fw(log)59 b Fq(\026)3225 11796 y Fz(~)3190 11852 y Fm(\014)3365 11763 y Fw(\()p Fq(x)3675 11798 y Fm(i)3787 11763 y Fw(\))73 b(+)f(\(1)g Fr(\000)g Fq(y)5157 11798 y Fm(i)5269 11763 y Fw(\))55 b(log)s(\(1)73 b Fr(\000)f Fq(\026)6787 11796 y Fz(~)6752 11852 y Fm(\014)6927 11763 y Fw(\()p Fq(x)7237 11798 y Fm(i)7350 11763 y Fw(\)\)])1598 12600 y Fr(\000)g Fq(\025)p Fr(k)2322 12516 y Fw(~)2276 12600 y Fq(\014)16 b Fr(k)2638 12635 y Fz(1)2784 12600 y Fq(:)-326 13173 y Fw(An)102 b(assignmen)-9 b(t)102 b(of)g Fq(\014)119 b Fw(co)9 b(e\016cien)-9 b(ts)103 b(that)g(maximizes)f(this)i(func-)-642 13542 y(tion)147 b(represen)-9 b(ts)147 b(a)g(mo)9 b(del)147 b(that)g(maximizes)g(the)h (\014delit)-9 b(y)147 b(of)g(its)-642 13911 y(predictions)e(while)h (still)h(limiting)f(itself)h(to)e(form)h(those)f(predic-)-642 14280 y(tions)125 b(on)g(the)g(basis)g(of)h(only)e(a)h(small)h(n)-9 b(um)g(b)9 b(er)124 b(of)h(features)g(from)-642 14649 y(the)108 b(complete)g(feature)f(set.)-545 15297 y Fk(3.3.3)386 b(Data)98 b(Collection)h(and)e(Analysis)-326 15753 y Fw(Our)130 b FA(bc)g Fw(data)f(set)h(consists)h(of)e(4390)g(runs)g (with)h(distinct)h(ran-)-642 16123 y(dom)145 b(inputs)i(and)e(distinct) j(randomized)4827 16050 y Fz(1)4920 16123 y Fw(/)-18 b Fz(1000)145 b Fw(sampling.)258 b(W)-27 b(e)-642 16492 y(randomly)128 b(c)-9 b(hose)130 b(2729)f(runs)h(for)g(training,)136 b(322)129 b(runs)h(for)g(cross-)-642 16861 y(v)-18 b(alidation,)147 b(and)139 b(1339)g(runs)h(for)g(testing.)241 b(Although)139 b(there)h(are)-642 17230 y(30,150)87 b(ra)-9 b(w)88 b(features,)93 b(man)-9 b(y)87 b(can)i(b)9 b(e)88 b(discarded)g(immediately)g(us-)-642 17599 y(ing)121 b(elimination)h(b)-9 b(y)121 b Fr(h)p Fd(universal)g(falseho)9 b(o)g(d)p Fr(i)p Fw(:)172 b(in)122 b(the)f(training)h(set)-642 17968 y(27,242)99 b(features)i(are)f(alw)-9 b(a)g(ys)101 b(zero.)142 b(Hence)100 b(the)h(e\013ectiv)-9 b(e)100 b(n)-9 b(um)g(b)9 b(er)-642 18337 y(of)97 b(features)f(used)g (in)h(training)g(is)g(2908.)140 b(\(Elimination)97 b(b)-9 b(y)96 b Fr(h)p Fd(lack)i(of)-642 18706 y(failing)110 b(example)p Fr(i)i Fw(can)e(eliminate)h(another)e(647)g(features)i (that)g(are)-642 19075 y(zero)122 b(for)h(all)g(failed)g(runs.)187 b(Ho)-9 b(w)g(ev)g(er)121 b(w)-9 b(e)122 b(\014nd)g(that)h(the)f (presence)-642 19444 y(or)101 b(absence)f(of)h(these)f(647)g(features)h (do)9 b(es)100 b(not)h(signi\014can)-9 b(tly)100 b(a\013ect)-642 19813 y(the)108 b(qualit)-9 b(y)108 b(of)g(the)g(regularized)f (logistic)j(regression)d(results.\))-326 20182 y(T)-27 b(o)106 b(mak)-9 b(e)105 b(the)h(magnitude)f(of)h(the)h Fq(\014)123 b Fw(parameters)105 b(comparable,)-642 20551 y(the)152 b(feature)f(v)-18 b(alues)151 b(m)-9 b(ust)152 b(b)9 b(e)151 b(on)h(the)f(same)h(scale.)276 b(Hence)151 b(all)-642 20920 y(the)142 b(input)f(features)h(are)g(shifted)g(and)f (scaled)h(to)g(lie)g(on)g(the)g(in-)-642 21289 y(terv)-18 b(al)119 b([0)p Fq(;)55 b Fw(1],)123 b(then)c(normalized)g(to)h(ha)-9 b(v)g(e)118 b(unit)i(sample)f(v)-18 b(ariance.)-642 21658 y(A)141 b(suitable)h(v)-18 b(alue)140 b(for)i(the)f(regularization)g (parameter)f Fq(\025)h Fw(is)h(de-)-642 22027 y(termined)126 b(through)f(cross-v)-18 b(alidation)126 b(to)h(b)9 b(e)125 b(0)p Fq(:)p Fw(3.)199 b(The)126 b(mo)9 b(del)125 b(is)-642 22396 y(then)82 b(trained)h(using)f(sto)9 b(c)-9 b(hastic)85 b(gradien)-9 b(t)82 b(ascen)-9 b(t)83 b(to)g(reac)-9 b(h)83 b(a)g(lo)9 b(cal)-642 22765 y(maxim)-9 b(um)111 b(of)g(the)h(p)9 b(enalized)111 b(log)g(lik)-9 b(eliho)9 b(o)g(d.)154 b(Using)112 b(a)f(step)h(size)p 9480 -628 7170 15 v 9480 -533 15 95 v 16636 -533 V 8778 -336 a Fb(152)p 9480 -252 15 282 v 532 w Fa(void)p 16636 -252 V 8778 -55 a Fb(153)p 9480 29 V 532 w Fa(more_arrays)127 b(\(\))p 16636 29 V 8778 226 a Fb(154)p 9480 310 V 532 w Fa({)p 16636 310 V 8778 507 a Fb(155)p 9480 592 V 793 w Fa(int)j(indx;)p 16636 592 V 8778 788 a Fb(156)p 9480 873 V 793 w Fa(int)g(old_count;)p 16636 873 V 8778 1069 a Fb(157)p 9480 1154 V 793 w Fa(bc_var_array)d(**old_ary;)p 16636 1154 V 8778 1351 a Fb(158)p 9480 1435 V 793 w Fa(char)j (**old_names;)p 16636 1435 V 8778 1632 a Fb(159)p 9480 1716 V 16636 1716 V 8778 1913 a(160)p 9480 1997 V 793 w Fa(/*)g(Save)g(the)g(old)f(values.)g(*/)p 16636 1997 V 8778 2194 a Fb(161)p 9480 2279 V 793 w Fa(old_count)f(=)j(a_count;)p 16636 2279 V 8778 2475 a Fb(162)p 9480 2560 V 793 w Fa(old_ary)e(=)h (arrays;)p 16636 2560 V 8778 2756 a Fb(163)p 9480 2841 V 793 w Fa(old_names)e(=)j(a_names;)p 16636 2841 V 8778 3038 a Fb(164)p 9480 3122 V 16636 3122 V 8778 3319 a(165)p 9480 3403 V 793 w Fa(/*)f(Increment)e(by)i(a)h(fixed)e(amount)g(and)h (allocate.)e(*/)p 16636 3403 V 8778 3600 a Fb(166)p 9480 3684 V 793 w Fa(a_count)h(+=)h(STORE_INCR;)p 16636 3684 V 8778 3881 a Fb(167)p 9480 3966 V 793 w Fa(arrays)f(=)i (\(bc_var_array)126 b(**\))k(bc_malloc)e(\(a_count*si...)p 16636 3966 V 8778 4162 a Fb(168)p 9480 4247 V 793 w Fa(a_names)h(=)h (\(char)f(**\))h(bc_malloc)e(\(a_count*sizeof\(ch...)p 16636 4247 V 8778 4444 a Fb(169)p 9480 4528 V 16636 4528 V 8778 4725 a(170)p 9480 4809 V 793 w Fa(/*)i(Copy)g(the)g(old)f (arrays.)g(*/)p 16636 4809 V 8778 5006 a Fb(171)p 9480 5090 V 793 w Fa(for)h(\(indx)f(=)i(1;)f(indx)f(<)i(old_count;)c (indx++\))p 16636 5090 V 8778 5287 a Fb(172)p 9480 5371 V 1055 w Fa(arrays[indx])g(=)j(old_ary[indx];)p 16636 5371 V 8778 5568 a Fb(173)p 9480 5653 V 16636 5653 V 8778 5849 a(174)p 9480 5934 V 16636 5934 V 8778 6131 a(175)p 9480 6215 V 793 w Fa(/*)g(Initialize)e(the)i(new)g(elements.)e (*/)p 16636 6215 V 8778 6412 a Fb(176)p 9480 6496 V 793 w Fa(for)i(\(;)g(indx)g(<)g(v_count;)e(indx++\))p 16636 6496 V 8778 6693 a Fb(177)p 9480 6777 V 1055 w Fa(arrays[indx])f(=)j (NULL;)p 16636 6777 V 8778 6974 a Fb(178)p 9480 7058 V 16636 7058 V 8778 7255 a(179)p 9480 7340 V 793 w Fa(/*)g(Free)g(the)g (old)f(elements.)f(*/)p 16636 7340 V 8778 7536 a Fb(180)p 9480 7621 V 793 w Fa(if)i(\(old_count)e(!=)i(0\))p 16636 7621 V 8778 7818 a Fb(181)p 9480 7902 V 1055 w Fa({)p 16636 7902 V 8778 8099 a Fb(182)p 9480 8183 V 1316 w Fa(free)g(\(old_ary\);)p 16636 8183 V 8778 8380 a Fb(183)p 9480 8464 V 1316 w Fa(free)g(\(old_names\);)p 16636 8464 V 8778 8661 a Fb(184)p 9480 8745 V 1055 w Fa(})p 16636 8745 V 8778 8942 a Fb(185)p 9480 9027 V 532 w Fa(})p 16636 9027 V 9480 9121 15 95 v 16636 9121 V 9480 9135 7170 15 v 8636 10179 a Fv(Figure)188 b(3:)291 b(Susp)10 b(ect)186 b FA(bc)h Fv(function)g FA(more_arrays\(\))p Fv(.)354 b(All)8636 10548 y(top-rank)-10 b(ed)147 b(crash-predicting)g (features)h(p)10 b(oin)-10 b(t)147 b(to)g(large)8636 10917 y(v)-21 b(alues)124 b(of)161 b FA(indx)125 b Fv(on)g(line)g(176.) 8636 11938 y Fw(of)103 b(10)9327 11804 y FC(\000)p Fz(5)9676 11938 y Fw(,)h(the)f(mo)9 b(del)102 b(usually)g(con)-9 b(v)g(erges)101 b(within)i(sixt)-9 b(y)103 b(iterations)8636 12307 y(through)j(the)h(training)f(set.)145 b(This)107 b(tak)-9 b(es)106 b(roughly)f(thirt)-9 b(y)108 b(min)-9 b(utes)8636 12676 y(in)131 b(MA)-27 b(TLAB)131 b(on)f(a)h(1.8)f(GHz)i (P)-9 b(en)g(tium)130 b(4)h(CPU)g(with)g(1)f(GB)i(of)8636 13045 y(RAM.)8953 13415 y(Once)165 b(the)g(mo)9 b(del)165 b(has)g(b)9 b(een)164 b(trained,)180 b(predicates)165 b(with)h(the)8636 13784 y(largest)107 b Fq(\014)124 b Fw(co)9 b(e\016cien)-9 b(ts)108 b(suggest)e(where)g(to)h(b)9 b(egin)106 b(lo)9 b(oking)106 b(for)h(the)8636 14153 y(bug.)209 b(In)130 b(our)f(case,)136 b(the)129 b(top)h(\014v)-9 b(e)129 b(rank)-9 b(ed)128 b(co)9 b(e\016cien)-9 b(ts)130 b(are)f(w)-9 b(ell-)8636 14522 y(separated)116 b(in)h(magnitude)e(from) i(the)g(rest,)j(and)c(sho)-9 b(w)116 b(an)g(unmis-)8636 14891 y(tak)-18 b(able)107 b(trend:)8970 15586 y Fi(1.)159 b(storage.c:176:)304 b(more_arrays\(\):)g(indx)151 b(>)f(scale)8970 15902 y(2.)159 b(storage.c:176:)304 b(more_arrays\(\):)g(indx)151 b(>)f(use_math)8970 16218 y(3.)159 b(storage.c:176:)304 b(more_arrays\(\):)g(indx)151 b(>)f(opterr)8970 16535 y(4.)159 b(storage.c:176:)304 b(more_arrays\(\):)g(indx)151 b(>)f(next_func)8970 16851 y(5.)159 b(storage.c:176:)304 b(more_arrays\(\):)g(indx)151 b(>)f(i_base)8953 17599 y Fw(The)117 b(source)h(co)9 b(de)117 b(for)h FA(more_arrays\(\))h Fw(app)9 b(ears)117 b(in)h(Figure)g(3.)8636 17968 y(A)140 b(commen)-9 b(t)139 b(earlier)h(in)f(the)h(same)f(\014le)g(suggests)h (that)f(this)i(one)8636 18337 y(of)131 b(a)g(suite)g(of)g(\\three)f (functions)h(for)g(increasing)f(the)h(n)-9 b(um)g(b)9 b(er)130 b(of)8636 18706 y(functions,)i(v)-18 b(ariables,)130 b(or)c(arra)-9 b(ys)126 b(that)g(are)g(needed.")196 b(The)125 b(logic)8636 19075 y(is)158 b(a)e(fairly)h(clear)g(instance)g(of)f(the) h(bu\013er)e(reallo)9 b(cation)156 b(idiom,)8636 19444 y(ev)-9 b(en)160 b(to)h(one)g(unfamiliar)g(with)g(the)g(co)9 b(de:)250 b(line)161 b(167)f(allo)9 b(cates)8636 19813 y(a)161 b(larger)f(c)-9 b(h)g(unk)160 b(of)g(memory;)186 b(line)161 b(171)e(is)j(the)e(top)g(of)h(a)f(lo)9 b(op)8636 20182 y(that)107 b(copies)f(v)-18 b(alues)105 b(o)-9 b(v)g(er)106 b(from)g(the)g(old,)h(smaller)f(arra)-9 b(y;)107 b(line)f(176)8636 20551 y(completes)155 b(the)f(resize)h(b)-9 b(y)154 b(zeroing)g(out)g(the)g(new)g(extra)g(space.)8636 20920 y(As)143 b(the)g(commen)-9 b(t)142 b(suggests,)152 b(there)142 b(are)g(t)-9 b(w)g(o)143 b(similar)g(functions)8636 21289 y(\()p FA(more_functions\(\))91 b Fw(and)d FA(more_variables\(\)) p Fw(\))j(nearb)-9 b(y)88 b(that)h(do)8636 21658 y(largely)83 b(the)g(same)g(thing)g(with)h(di\013eren)-9 b(t)82 b(storage)h(p)9 b(o)g(ols.)136 b(The)82 b(text)8636 22027 y(of)149 b(these)g(three)g (functions)g(is)h(nearly)e(iden)-9 b(tical,)160 b(but)148 b(eac)-9 b(h)149 b(uses)8636 22396 y(di\013eren)-9 b(t)133 b(global)f(v)-18 b(ariables)132 b(\(suc)-9 b(h)134 b(as)f FA(a_count)g Fw(v)-9 b(ersus)133 b FA(f_count)8636 22765 y Fw(v)-9 b(ersus)108 b FA(v_count)p Fw(\).)p eop %%Page: 11 11 11 10 bop -326 -291 a Fw(The)147 b(top)g(rank)-9 b(ed)146 b(predicates)i(seem)f(bizarre)g(on)g(\014rst)i(exami-)-642 78 y(nation,)134 b(b)9 b(ecause)128 b(the)g(v)-18 b(ariables)128 b(they)h(relate)g(do)f(not)h(app)9 b(ear)127 b(to)-642 447 y(ha)-9 b(v)g(e)83 b(an)-9 b(y)84 b(real)g(connection)h(to)g(eac)-9 b(h)84 b(other)g(or)h(to)g FA(more_arrays\(\))p Fw(.)-642 816 y(F)-27 b(or)75 b(example,)81 b FA(scale)76 b Fw(trac)-9 b(ks)76 b(signi\014can)-9 b(t)75 b(digits)h(for)g(\015oating)e(p)9 b(oin)-9 b(t)-642 1185 y(calculations,)84 b(while)76 b FA(use_math)i Fw(records)e(whether)g(an)g(initial)h(math)-642 1555 y(library)110 b(is)g(to)g(b)9 b(e)109 b(loaded.)148 b(Wh)-9 b(y)109 b(w)-9 b(ould)109 b(crashes)h(tend)f(to)h(happ)9 b(en)-642 1924 y(when)106 b(lo)9 b(cal)108 b(v)-18 b(ariable)107 b FA(indx)h Fw(exceeds)f(these)g(seemingly)f(unrelated)-642 2293 y(globals)150 b(on)h(this)h(particular)g(line?)273 b(An)150 b(ob)-9 b(vious)150 b(h)-9 b(yp)9 b(othesis)150 b(is)-642 2662 y(that)130 b FA(indx)g Fw(is)h(simply)f(un)-9 b(usually)129 b(large)g(in)h(suc)-9 b(h)130 b(cases.)210 b(If)156 b FA(indx)-642 3031 y Fw(is)127 b(large,)j(then)c(it)h(will)g (tend)f(to)g(b)9 b(e)126 b(larger)f(than)h(an)-9 b(y)125 b(n)-9 b(um)g(b)9 b(er)125 b(of)-642 3400 y(otherwise)118 b(unrelated)f(v)-18 b(ariables.)174 b(P)-9 b(erhaps)117 b(crashes)h(o)9 b(ccur)119 b(when)-642 3769 y(the)108 b(input)g(to)g FA(bc)h Fw(de\014nes)d(un)-9 b(usually)107 b(large)h(n)-9 b(um)g(b)9 b(ers)107 b(of)h(arra)-9 b(ys.)-326 4138 y(Closer)123 b(scrutin)-9 b(y)123 b(of)147 b FA(more_arrays\(\)) 124 b Fw(quic)-9 b(kly)122 b(rev)-9 b(eals)122 b(this)h(to)-642 4507 y(b)9 b(e)131 b(the)g(case.)215 b(The)130 b(allo)9 b(cation)132 b(on)f(line)g(167)g(requests)g(space)g(for)-642 4876 y FA(a_count)h Fw(items.)216 b(The)131 b(cop)-9 b(ying)131 b(lo)9 b(op)131 b(on)g(line)h(171)e(ranges)h(from)-642 5245 y FA(1)157 b Fw(through)e FA(old_count)166 b(-)g(1)p Fw(.)290 b(The)156 b(zeroing)f(lo)9 b(op)156 b(on)g(line)g(176)-642 5614 y(con)-9 b(tin)g(ues)144 b(on)f(from)i FA(old_count)f Fw(through)f FA(v_count)167 b(-)f(1)p Fw(.)253 b(And)-642 5983 y(here)123 b(w)-9 b(e)124 b(\014nd)f(the)h(bug:)175 b(the)124 b(new)f(storage)h(bu\013er)f(has)g(ro)9 b(om)124 b(for)-642 6352 y FA(a_count)107 b Fw(elemen)-9 b(ts,)107 b(but)f(the)g(second)g(lo)9 b(op)105 b(is)j(incorrectly)f(b)9 b(ound)-642 6721 y(b)-9 b(y)166 b FA(v_count)d Fw(instead.)308 b(After)163 b(a)f(glimpse)g(at)h(the)f(neigh)-9 b(b)9 b(oring)-642 7090 y FA(more_variables\(\))127 b Fw(function)e(it)h(is)h (clear)e(that)h FA(more_arrays\(\))-642 7459 y Fw(w)-9 b(as)102 b(created)h(b)-9 b(y)102 b(cop)-9 b(ying)102 b(and)f(pasting)107 b FA(more_variables\(\))d Fw(and)-642 7828 y(then)k(c)-9 b(hanging)108 b(names)g(lik)-9 b(e)108 b FA(v_count)i Fw(and)e FA(v_names)h Fw(to)g FA(a_count)-642 8197 y Fw(and)93 b FA(a_names)p Fw(.)140 b(The)93 b(lo)9 b(op)94 b(b)9 b(ound)92 b(on)h(line)h(176)f(w)-9 b(as)93 b(missed)h(in)g(the)-642 8566 y(renaming.)-326 8935 y(The)103 b(logistic)j(regression)d(mo)9 b(del)103 b(p)9 b(oin)-9 b(ts)104 b(us)g(at)g(the)g(buggy)e(line,)-642 9304 y(the)86 b(buggy)e(v)-18 b(ariable,)89 b(and)c(ev)-9 b(en)85 b(rev)-9 b(eals)85 b(something)g(of)h(the)g(condi-)-642 9673 y(tions)114 b(under)g(whic)-9 b(h)114 b(the)g(bug)f(app)9 b(ears.)162 b(Ha)-9 b(ving)113 b(found)g(the)h(bug,)-642 10042 y(it)103 b(is)h(reasonable)c(to)j(ask)f(whether)g(the)g(statistical)j(analysis)d (could)-642 10411 y(ha)-9 b(v)g(e)114 b(p)9 b(oin)-9 b(ted)114 b(at)h(it)h(ev)-9 b(en)114 b(more)h(directly)-27 b(.)166 b(The)115 b(mistak)-9 b(en)114 b(use)h(of)-642 10780 y FA(v_count)101 b Fw(instead)f(of)125 b FA(a_count)101 b Fw(on)f(line)g(176)f(means)h(that)g(a)g(bu\013er)-642 11149 y(o)-9 b(v)g(errun)80 b(o)9 b(ccurs)83 b(when)e FA(indx)166 b(>)g(a_count)83 b Fw(on)e(line)h(176.)135 b(This)82 b(do)9 b(es)-642 11518 y(corresp)g(ond)119 b(to)i(a)f(predicate)g(sampled)g(b)-9 b(y)120 b(our)g(system,)k(but)c (this)-642 11887 y(predicate)133 b(is)g(rank)-9 b(ed)132 b(240th)g(in)h(the)g(trained)f(mo)9 b(del.)219 b(Wh)-9 b(y)132 b(w)-9 b(as)-642 12256 y(this,)109 b(the)f(smoking)f(gun,)h (not)g(rank)-9 b(ed)106 b(\014rst?)-326 12625 y(There)112 b(are)h(sev)-9 b(eral)112 b(reasons)g(to)h(consider.)160 b(Samples)112 b(are)g(tak)-9 b(en)-642 12995 y(randomly)-27 b(,)116 b(while)g(the)f(mo)9 b(del)115 b(itself)i(is)f(trained)f(using) h(sto)9 b(c)-9 b(hastic)-642 13364 y(gradien)g(t)122 b(ascen)-9 b(t.)191 b(Th)-9 b(us,)127 b(a)c(degree)f(of)h(noise)g(is)h (fundamen)-9 b(tal)122 b(to)-642 13733 y(the)139 b(pro)9 b(cess.)238 b(Ev)-9 b(en)139 b(crashing)g(is)h(not)f(guaran)-9 b(teed:)205 b(out)139 b(of)g(320)-642 14102 y(runs)162 b(in)g(whic)-9 b(h)162 b(sampling)f(sp)9 b(otted)162 b FA(indx)k(>)g(a_count)d Fw(at)f(least)-642 14471 y(once,)114 b(66)f(did)g(not)g(crash.)161 b(Th)-9 b(us,)114 b(C)f(programs)g(can)g (\\get)g(luc)-9 b(ky",)-642 14840 y(meaning)115 b(that)i(this)g(is)h (not)e(a)h(strict)i(o)-9 b(v)g(errun)207 b(=)-54 b Fr(\))209 b Fw(crash)117 b(impli-)-642 15209 y(cation.)144 b(Man)-9 b(ual)104 b(insp)9 b(ection)105 b(of)h(the)f(data)f(rev)-9 b(eals)105 b(a)g(high)g(degree)-642 15578 y(of)169 b(redundancy)d (among)h(man)-9 b(y)168 b(instrumen)-9 b(tation)168 b(sites)i(within) -642 15947 y FA(more_arrays\(\))p Fw(,)175 b(meaning)160 b(that)h(the)g(mo)9 b(del)160 b(has)h(sev)-9 b(eral)160 b(fea-)-642 16316 y(tures)107 b(to)h(c)-9 b(ho)9 b(ose)106 b(from)i(that)f(ha)-9 b(v)g(e)106 b(equiv)-18 b(alen)-9 b(t)106 b(predictiv)-9 b(e)107 b(p)9 b(o)-9 b(w)g(er.)-642 16685 y(This)92 b(suggests)g(that)g(our)f(coun)-9 b(ters)92 b(ma)-9 b(y)91 b(b)9 b(e)92 b(to)9 b(o)91 b(\014ne-grained:)135 b(w)-9 b(e)-642 17054 y(are)92 b(distinguishing)h(man)-9 b(y)92 b(b)9 b(eha)-9 b(viors)91 b(that)j(are)e(in)i(fact)g(so)f(tigh) -9 b(tly)-642 17423 y(in)g(terrelated)108 b(as)g(to)g(b)9 b(e)108 b(equiv)-18 b(alen)-9 b(t.)-326 17792 y(This)112 b(bug)e(seems)h(clear)h(enough)d(once)i(found.)154 b(Ho)-9 b(w)g(ev)g(er)109 b(it)k(has)-642 18161 y(b)9 b(een)101 b(presen)-9 b(t)101 b(and)g(undisco)-9 b(v)g(ered)100 b(at)j(least)f(since)h(1992)d(\(the)j(time)-642 18530 y(stamp)72 b(on)f(this)i(\014le)f(in)g(the)g(oldest)g(v)-9 b(ersion)72 b(of)g(GNU)g FA(bc)g Fw(that)h(w)-9 b(e)71 b(can)-642 18899 y(\014nd\).)221 b(Man)-9 b(y)133 b(bugs)g(are)g(ob)-9 b(vious)132 b(only)h(once)h(one)e(kno)-9 b(ws)133 b(where)-642 19268 y(to)140 b(lo)9 b(ok.)238 b(The)139 b(logistic)i(regression)e (results)i(directed)e(us)h(to)g(one)-642 19637 y(misb)9 b(eha)-9 b(ving)119 b(v)-18 b(ariable)120 b(on)g(one)g(line)h(of)g(co)9 b(de,)124 b(out)c(of)i(8910)d(lines)-642 20006 y(in)100 b FA(bc)h Fw(as)f(a)g(whole.)141 b(Our)100 b(approac)-9 b(h)98 b(do)9 b(es)99 b(not)h(automatically)g(\014nd)-642 20375 y(and)138 b(\014x)h(bugs.)237 b(But)140 b(it)g(do)9 b(es)138 b(suggest)h(where)f(to)i(start)g(lo)9 b(oking,)-642 20744 y(and)143 b(what)g(sort)h(of)g(scenarios)g(\(e.g.,)153 b(un)-9 b(usually)142 b(large)h FA(indx)p Fw(\))i(to)-642 21113 y(consider.)281 b(Although)152 b(w)-9 b(e)153 b(are)g(still)j (learning)c(ab)9 b(out)153 b(the)g(capa-)-642 21482 y(bilities)139 b(of)e(this)i(system)e(and)g(ho)-9 b(w)137 b(to)g(in)-9 b(terpret)138 b(its)h(results,)146 b(w)-9 b(e)-642 21851 y(b)9 b(eliev)-9 b(e)93 b(that)i(statistically)i(guided)c(debugging)e (has)j(the)h(p)9 b(oten)-9 b(tial)-642 22220 y(to)93 b(mak)-9 b(e)92 b(the)h(pro)9 b(cess)93 b(of)g(\014nding)e(and)h (\014xing)g(bugs)h(more)f(e\016cien)-9 b(t)-642 22589 y(and)107 b(more)h(resp)9 b(onsiv)-9 b(e)106 b(to)j(the)f(needs)f(of)h (end)f(users.)8636 6092 y @beginspecial 51 @llx 197 @lly 542 @urx 589 @ury 2391 @rwi @setspecial %%BeginDocument: applications/bc_density.eps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: MATLAB, The Mathworks, Inc. %%Title: bc_density.eps %%CreationDate: 04/07/2003 02:11:15 %%DocumentNeededFonts: Helvetica %%DocumentProcessColors: Cyan Magenta Yellow Black %%Pages: 1 %%BoundingBox: 51 197 542 589 %%EndComments %%BeginProlog % MathWorks dictionary /MathWorks 160 dict begin % definition operators /bdef {bind def} bind def /ldef {load def} bind def /xdef {exch def} bdef /xstore {exch store} bdef % operator abbreviations /c /clip ldef /cc /concat ldef /cp /closepath ldef /gr /grestore ldef /gs /gsave ldef /mt /moveto ldef /np /newpath ldef /cm /currentmatrix ldef /sm /setmatrix ldef /rm /rmoveto ldef /rl /rlineto ldef /s /show ldef /sc {setcmykcolor} bdef /sr /setrgbcolor ldef /sg /setgray ldef /w /setlinewidth ldef /j /setlinejoin ldef /cap /setlinecap ldef /rc {rectclip} bdef /rf {rectfill} bdef % page state control /pgsv () def /bpage {/pgsv save def} bdef /epage {pgsv restore} bdef /bplot /gsave ldef /eplot {stroke grestore} bdef % orientation switch /portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def % coordinate system mappings /dpi2point 0 def % font control /FontSize 0 def /FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0] makefont setfont} bdef /reencode {exch dup where {pop load} {pop StandardEncoding} ifelse exch dup 3 1 roll findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding exch def currentdict end definefont pop} bdef /isroman {findfont /CharStrings get /Agrave known} bdef /FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse exch FMS} bdef /csm {1 dpi2point div -1 dpi2point div scale neg translate dup landscapeMode eq {pop -90 rotate} {rotateMode eq {90 rotate} if} ifelse} bdef % line types: solid, dotted, dashed, dotdash /SO { [] 0 setdash } bdef /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef /DA { [6 dpi2point mul] 0 setdash } bdef /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef % macros for lines and objects /L {lineto stroke} bdef /MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef /AP {{rlineto} repeat} bdef /PDlw -1 def /W {/PDlw currentlinewidth def setlinewidth} def /PP {closepath eofill} bdef /DP {closepath stroke} bdef /MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath} bdef /FR {MR stroke} bdef /PR {MR fill} bdef /L1i {{currentfile picstr readhexstring pop} image} bdef /tMatrix matrix def /MakeOval {newpath tMatrix currentmatrix pop translate scale 0 0 1 0 360 arc tMatrix setmatrix} bdef /FO {MakeOval stroke} bdef /PO {MakeOval fill} bdef /PD {currentlinewidth 2 div 0 360 arc fill PDlw -1 eq not {PDlw w /PDlw -1 def} if} def /FA {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef /PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef /FAn {newpath tMatrix currentmatrix pop translate scale 0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef /PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale 0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef /vradius 0 def /hradius 0 def /lry 0 def /lrx 0 def /uly 0 def /ulx 0 def /rad 0 def /MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly vradius add translate hradius vradius scale 0 0 1 180 270 arc tMatrix setmatrix lrx hradius sub uly vradius add translate hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix lrx hradius sub lry vradius sub translate hradius vradius scale 0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix closepath} bdef /FRR {MRR stroke } bdef /PRR {MRR fill } bdef /MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix closepath} bdef /FlrRR {MlrRR stroke } bdef /PlrRR {MlrRR fill } bdef /MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def newpath tMatrix currentmatrix pop ulx rad add uly rad add translate rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix closepath} bdef /FtbRR {MtbRR stroke } bdef /PtbRR {MtbRR fill } bdef /stri 6 array def /dtri 6 array def /smat 6 array def /dmat 6 array def /tmat1 6 array def /tmat2 6 array def /dif 3 array def /asub {/ind2 exch def /ind1 exch def dup dup ind1 get exch ind2 get sub exch } bdef /tri_to_matrix { 2 0 asub 3 1 asub 4 0 asub 5 1 asub dup 0 get exch 1 get 7 -1 roll astore } bdef /compute_transform { dmat dtri tri_to_matrix tmat1 invertmatrix smat stri tri_to_matrix tmat2 concatmatrix } bdef /ds {stri astore pop} bdef /dt {dtri astore pop} bdef /db {2 copy /cols xdef /rows xdef mul dup string currentfile exch readhexstring pop /bmap xdef pop pop} bdef /it {gs np dtri aload pop moveto lineto lineto cp c cols rows 8 compute_transform {bmap} image gr}bdef /il {newpath moveto lineto stroke}bdef currentdict end def %%EndProlog %%BeginSetup MathWorks begin 0 cap end %%EndSetup %%Page: 1 1 %%BeginPageSetup %%PageBoundingBox: 51 197 542 589 MathWorks begin bpage %%EndPageSetup %%BeginObject: obj1 bplot /dpi2point 12 def portraitMode 0204 7344 csm 415 273 5890 4703 MR c np 14 dict begin %Colortable dictionary /c0 { 0 0 0 sr} bdef /c1 { 1 1 1 sr} bdef /c2 { 1 0 0 sr} bdef /c3 { 0 1 0 sr} bdef /c4 { 0 0 1 sr} bdef /c5 { 1 1 0 sr} bdef /c6 { 1 0 1 sr} bdef /c7 { 0 1 1 sr} bdef c0 1 j 1 sg 0 0 6913 5185 PR 6 w 0 4225 5357 0 0 -4225 898 4613 4 MP PP -5357 0 0 4225 5357 0 0 -4225 898 4613 5 MP stroke 4 w DO 0 sg 898 4613 mt 6255 4613 L 6255 4613 mt 6255 4613 L 898 3557 mt 6255 3557 L 6255 3557 mt 6255 3557 L 898 2501 mt 6255 2501 L 6255 2501 mt 6255 2501 L 898 1445 mt 6255 1445 L 6255 1445 mt 6255 1445 L 898 388 mt 6255 388 L 6255 388 mt 6255 388 L SO 6 w 898 4613 mt 6255 4613 L 898 388 mt 6255 388 L 898 4613 mt 898 388 L 6255 4613 mt 6255 388 L 898 4613 mt 6255 4613 L 898 4613 mt 898 388 L 1434 4613 mt 1434 4560 L 1434 388 mt 1434 442 L %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 120 FMSR 1254 4759 mt (always) s 2505 4613 mt 2505 4560 L 2505 388 mt 2505 442 L 2355 4759 mt (1/100) s 3577 4613 mt 3577 4560 L 3577 388 mt 3577 442 L 3394 4759 mt (1/1000) s 4648 4613 mt 4648 4560 L 4648 388 mt 4648 442 L 4415 4759 mt (1/10,000) s 5719 4613 mt 5719 4560 L 5719 388 mt 5719 442 L 5403 4759 mt (1/1,000,000) s 898 4613 mt 952 4613 L 6255 4613 mt 6201 4613 L 631 4657 mt (0.95) s 898 3557 mt 952 3557 L 6255 3557 mt 6201 3557 L 798 3601 mt (1) s 898 2501 mt 952 2501 L 6255 2501 mt 6201 2501 L 631 2545 mt (1.05) s 898 1445 mt 952 1445 L 6255 1445 mt 6201 1445 L 698 1489 mt (1.1) s 898 388 mt 952 388 L 6255 388 mt 6201 388 L 631 432 mt (1.15) s 898 4613 mt 6255 4613 L 898 388 mt 6255 388 L 898 4613 mt 898 388 L 6255 4613 mt 6255 388 L gs 898 388 5358 4226 MR c np 5358 0 898 3557 2 MP stroke 0.6 sg 0 23806 857 0 0 -23806 1006 24682 4 MP PP 0 sg -857 0 0 23806 857 0 0 -23806 1006 24682 5 MP stroke 0.8 sg 0 22365 857 0 0 -22365 2077 24682 4 MP PP 0 sg -857 0 0 22365 857 0 0 -22365 2077 24682 5 MP stroke 0.8 sg 0 21231 857 0 0 -21231 3148 24682 4 MP PP 0 sg -857 0 0 21231 857 0 0 -21231 3148 24682 5 MP stroke 0.8 sg 0 20942 857 0 0 -20942 4219 24682 4 MP PP 0 sg -857 0 0 20942 857 0 0 -20942 4219 24682 5 MP stroke 0.8 sg 0 20850 857 0 0 -20850 5290 24682 4 MP PP 0 sg -857 0 0 20850 857 0 0 -20850 5290 24682 5 MP stroke gr %%IncludeResource: font Helvetica /Helvetica /ISOLatin1Encoding 168 FMSR 2939 4937 mt (Sampling density) s 576 3296 mt -90 rotate (Relative performance) s 90 rotate end eplot %%EndObject epage end showpage %%Trailer %%EOF %%EndDocument @endspecial 721 x Fv(Figure)121 b(4:)164 b(Relativ)-10 b(e)119 b(p)10 b(erformance)122 b(of)156 b FA(bc)120 b Fv(with)g(uncondi-)8636 7182 y(tional)125 b(or)g(sampled)f(instrumen) -10 b(tation)8733 8305 y Fk(3.3.4)387 b(P)-31 b(erformance)98 b(Impact)8953 8762 y Fw(Our)112 b FA(bc)h Fw(instrumen)-9 b(tation)113 b(is)g(fairly)g(dense.)157 b(The)112 b(leftmost)i(bar)8636 9131 y(in)87 b(Figure)g(4)f(sho)-9 b(ws)87 b(that)g(if)g(this)h (instrumen)-9 b(tation)86 b(is)i(added)d(with-)8636 9500 y(out)111 b(sampling,)h(the)e(p)9 b(erformance)110 b(p)9 b(enalt)-9 b(y)110 b(is)i(13\045.)152 b(A)111 b(sampling)8636 9869 y(densit)-9 b(y)111 b(of)10135 9797 y Fz(1)10228 9869 y Fw(/)-18 b Fz(100)111 b Fw(cuts)h(this)g(in)g(half)f(\(6\045\).) 156 b(A)-9 b(t)111 b(the)15194 9797 y Fz(1)15286 9869 y Fw(/)-18 b Fz(1000)111 b Fw(densit)-9 b(y)8636 10238 y(used)104 b(in)h(our)f(statistical)k(debugging)101 b(exp)9 b(erimen)-9 b(t,)105 b(the)f(p)9 b(enalt)-9 b(y)104 b(is)8636 10607 y(barely)116 b(measurable)g(\(0.5\045\).)171 b(Still)118 b(lo)-9 b(w)g(er)116 b(densities)i(sho)-9 b(w)116 b(small,)8636 10976 y(unexp)9 b(ected)93 b(sp)9 b(eedups)93 b(relativ)-9 b(e)94 b(to)h(uninstrumen)-9 b(ted)93 b(co)9 b(de.)140 b(This)8636 11345 y(is)106 b(apparen)-9 b(tly)104 b(due)g(to)i (e\013ects)f(suc)-9 b(h)105 b(as)h(c)-9 b(hanges)104 b(in)h(relativ)-9 b(e)105 b(co)9 b(de)8636 11714 y(alignmen)-9 b(t,)160 b(cac)-9 b(he)150 b(b)9 b(eha)-9 b(vior,)159 b(measuremen)-9 b(t)149 b(noise,)160 b(and)149 b(other)8636 12083 y(unpredictable)107 b(factors.)8636 13082 y Fx(4.)422 b(RELA)-40 b(TED)106 b(W)l(ORK)8953 13539 y Fw(Sampling)81 b(has)h(a)h(long)f(history)-27 b(,)88 b(with)82 b(most)h(applications)g (fo)9 b(cus-)8636 13908 y(ing)139 b(on)f(p)9 b(erformance)138 b(pro\014ling)g(and)f(optimization.)237 b(An)-9 b(y)138 b(sam-)8636 14277 y(pling)128 b(system)g(m)-9 b(ust)129 b(de\014ne)d(a)i(trigger)g(mec)-9 b(hanism)127 b(that)i(signals)8636 14646 y(when)119 b(a)g(sample)g(is)i(to)e(b)9 b(e)119 b(tak)-9 b(en.)178 b(T)-9 b(ypical)120 b(triggers)f(include)h(p)9 b(e-)8636 15015 y(rio)g(dic)120 b(hardw)-9 b(are)116 b(timers/in)-9 b(terrupts)119 b([8,)j(25,)e(27],)h(p)9 b(erio)g(dic)119 b(soft-)8636 15384 y(w)-9 b(are)150 b(ev)-9 b(en)g(t)150 b(coun)-9 b(ters)151 b(\(e.g.,)162 b(ev)-9 b(ery)149 b Fq(n)p Fw(th)i(function)g(call\))h([3],)162 b(or)8636 15753 y(b)9 b(oth.)204 b(In)128 b(most)g(cases,)133 b(the)128 b(sampling)f(in)-9 b(terv)-18 b(al)128 b(is)g(strictly)i(p)9 b(eri-)8636 16123 y(o)g(dic;)153 b(this)137 b(ma)-9 b(y)137 b(su\016ce)g(when)f(h)-9 b(un)g(ting)136 b(for)h(large)g(p)9 b(erformance)8636 16492 y(b)g(ottlenec)-9 b(ks,)109 b(but)f(ma)-9 b(y)107 b(systematically)i(miss)g(rare)f(ev)-9 b(en)g(ts.)8953 16861 y(The)107 b(Digital)i(Con)-9 b(tin)g(uous)107 b(Pro\014ling)h (Infrastructure)h([1])g(is)g(un-)8636 17230 y(usual)153 b(in)h(c)-9 b(ho)9 b(osing)152 b(sampling)h(in)-9 b(terv)-18 b(als)153 b(randomly)-27 b(.)278 b(Ho)-9 b(w)g(ev)g(er,)8636 17599 y(the)112 b(random)f(distribution)h(is)g(uniform,)h(suc)-9 b(h)112 b(as)g(one)f(sample)g(ev-)8636 17968 y(ery)88 b(60K)f(to)h(64K)f(cycles.)139 b(Samples)87 b(th)-9 b(us)88 b(extracted)g(are)f(not)h(inde-)8636 18337 y(p)9 b(enden)-9 b(t.)140 b(If)101 b(one)d(sample)h(is)h(tak)-9 b(en,)100 b(there)g(is)g(zero)f(c)-9 b(hance)99 b(of)h(tak-)8636 18706 y(ing)107 b(an)-9 b(y)106 b(sample)g(in)h(the)f(next)h(1{59,999)d (cycles)k(and)d(zero)i(c)-9 b(hance)8636 19075 y(of)123 b Fu(not)152 b Fw(taking)122 b(exactly)g(one)g(sample)g(in)g(the)h (next)f(60K{64K)e(cy-)8636 19444 y(cles.)148 b(W)-27 b(e)108 b(trigger)h(samples)f(based)g(on)g(a)g(geometric)h (distribution,)8636 19813 y(whic)-9 b(h)139 b(correctly)h(mo)9 b(dels)139 b(the)g(in)-9 b(terv)-18 b(al)138 b(b)9 b(et)-9 b(w)g(een)138 b(successful)i(in-)8636 20182 y(dep)9 b(enden)-9 b(t)120 b(coin)i(tosses.)187 b(The)122 b(resulting)g(data)g(is)g(a)g (statistically)8636 20551 y(rigorous)103 b(fair)h(random)f(sample,)h (whic)-9 b(h)103 b(in)h(turn)g(gran)-9 b(ts)103 b(access)h(to)8636 20920 y(a)k(large)g(domain)f(of)h(p)9 b(o)-9 b(w)g(erful)107 b(statistical)k(analyses.)8953 21289 y(Recen)-9 b(t)136 b(w)-9 b(ork)135 b(in)i(trace)f(collection)h(has)f(fo)9 b(cused)136 b(on)f(program)8636 21658 y(understanding.)317 b(T)-27 b(ec)-9 b(hniques)164 b(for)j(capturing)e(program)g(traces)8636 22027 y(confron)-9 b(t)146 b(c)-9 b(hallenges)145 b(similar)i(to)f (those)g(w)-9 b(e)146 b(face)g(here,)155 b(suc)-9 b(h)146 b(as)8636 22396 y(minimizing)78 b(p)9 b(erformance)77 b(o)-9 b(v)g(erhead)75 b(and)h(managing)g(large)h(quan-)8636 22765 y(tities)90 b(of)e(captured)f(data.)137 b(Dynamic)88 b(analysis)f(in)h(particular)g(m)-9 b(ust)p eop %%Page: 12 12 12 11 bop -642 -291 a Fw(enco)9 b(de,)167 b(compress,)i(or)156 b(otherwise)g(reduce)f(an)h(incoming)g(trace)-642 78 y(stream)97 b(in)h(real)f(time,)k(as)c(the)g(program)f(runs)i([12,)h (22].)141 b(It)98 b(ma)-9 b(y)97 b(b)9 b(e)-642 447 y(di\016cult)96 b(to)g(directly)g(adapt)f(dynamic)g(trace)h(analysis)f(tec)-9 b(hniques)-642 816 y(to)141 b(a)g(domain)e(where)h(the)h(trace)g(is)h (sampled)e(and)f(therefore)i(in-)-642 1185 y(complete.)-326 1555 y(Our)84 b(e\013ort)g(to)h(understand)e(and)g(debug)g(programs)g (b)-9 b(y)84 b(selecting)-642 1924 y(predicates)d(is)h(partly)f (inspired)f(b)-9 b(y)81 b(Daik)-9 b(on)80 b([13].)136 b(Lik)-9 b(e)81 b(Daik)-9 b(on,)86 b(w)-9 b(e)-642 2293 y(b)9 b(egin)125 b(with)h(fairly)g(unstructured)g(guesses)f(and)g (eliminate)g(those)-642 2662 y(that)78 b(do)f(not)h(app)9 b(ear)76 b(to)i(hold.)133 b(Unlik)-9 b(e)77 b(Daik)-9 b(on,)84 b(w)-9 b(e)77 b(are)g(concerned)-642 3031 y(with)85 b(gathering)f(data)g(from)h(pro)9 b(duction)84 b(co)9 b(de,)90 b(whic)-9 b(h)84 b(leads)h(us)g(to)-642 3400 y(use)101 b(sampling)g(of)h(a)f(large)g(n)-9 b(um)g(b)9 b(er)101 b(of)g(runs)h(and)e(statistical)k(mo)9 b(d-)-642 3769 y(els;)131 b(the)123 b(Daik)-9 b(on)122 b(exp)9 b(erimen)-9 b(ts)121 b(are)i(done)e(on)i(a)f(smaller)h(n)-9 b(um)g(b)9 b(er)-642 4138 y(of)90 b(complete)f(traces.)139 b(W)-27 b(e)89 b(are)h(also)f(in)-9 b(terested)89 b(in)h(detecting)g (bugs,)-642 4507 y(while)111 b(Daik)-9 b(on)110 b(fo)9 b(cuses)112 b(on)e(the)h(somewhat)f(di\013eren)-9 b(t)111 b(problem)f(of)-642 4876 y(detecting)e(program)f(in)-9 b(v)-18 b(arian)-9 b(ts.)-326 5245 y(The)113 b(DIDUCE)i(pro)18 b(ject)114 b([16])f(also)h(attempts)g(to)f(iden)-9 b(tify)114 b(bugs)-642 5614 y(using)75 b(analysis)h(of)g(executions.)133 b(Unlik)-9 b(e)75 b(Daik)-9 b(on,)81 b(most)c(pro)9 b(cessing)-642 5983 y(do)g(es)107 b(tak)-9 b(e)108 b(place)g(within)h(the)f(clien)-9 b(t)109 b(program.)144 b(As)108 b(in)g(our)g(study)-27 b(,)-642 6352 y(DIDUCE)155 b(attempts)f(to)h(relate)f(c)-9 b(hanges)153 b(in)h(predicates)g(to)g(the)-642 6721 y(manifestation)141 b(of)h(bugs.)245 b(Ho)-9 b(w)g(ev)g(er,)148 b(DIDUCE)143 b(p)9 b(erforms)142 b(com-)-642 7090 y(plete)112 b(tracing)h(and)e(fo)9 b(cuses)113 b(on)f(discrete)h(state)g(c)-9 b(hanges,)113 b(suc)-9 b(h)112 b(as)-642 7459 y(the)76 b(\014rst)h(time)f(a)g (predicate)g(transitioned)f(from)i(true)f(to)g(false.)134 b(Our)-642 7828 y(approac)-9 b(h)139 b(is)i(more)e(probabilistic:)210 b(w)-9 b(e)140 b(wish)h(to)f(iden)-9 b(tify)140 b(broad)-642 8197 y(trends)102 b(o)-9 b(v)g(er)102 b(time)h(that)g(correlate)g (predicate)f(violations)h(with)g(in-)-642 8566 y(creased)108 b(lik)-9 b(eliho)9 b(o)g(d)107 b(of)h(failure.)-326 8935 y Fu(Softwar)-17 b(e)166 b(tomo)-17 b(gr)g(aphy)192 b Fw(as)163 b(realized)g(through)e(the)i(GAMMA)-642 9304 y(system)102 b([5])h(shares)e(our)h(goal)f(of)i(lo)-9 b(w-o)g(v)g(erhead)99 b(distributed)j(mon-)-642 9673 y(itoring)k(of)h(deplo)-9 b(y)g(ed)104 b(co)9 b(de.)143 b(Applications)106 b(to)h(date)f(ha)-9 b(v)g(e)104 b(fo)9 b(cused)-642 10042 y(on)152 b(co)9 b(de)152 b(co)-9 b(v)g(erage)151 b(and)h(traditional)g(p)9 b(erformance)152 b(monitoring)-642 10411 y(tasks,)109 b(whereas)e(our)g(primary)h(in)-9 b(terest)109 b(is)f(bug)g(isolation.)-642 11237 y Fx(5.)422 b(PRIV)-57 b(A)-23 b(CY)103 b(AND)g(SECURITY)-326 11694 y Fw(As)76 b(noted)f(in)h(Section)f(1,)82 b(the)76 b(most)g(imp)9 b(ortan)-9 b(t)75 b(program)g(b)9 b(eha)-9 b(v-)-642 12063 y(iors)88 b(are)e(those)h(exhibited)g(b)-9 b(y)86 b(deplo)-9 b(y)g(ed)85 b(soft)-9 b(w)g(are)87 b(in)h(the)f(hands)f(of) -642 12432 y(users.)214 b(Ho)-9 b(w)g(ev)g(er,)135 b(an)-9 b(y)130 b(sc)-9 b(heme)131 b(for)g(monitoring)g(soft)-9 b(w)g(are)131 b(p)9 b(ost-)-642 12801 y(deplo)-9 b(ymen)g(t)88 b(necessarily)j(raises)g(priv)-18 b(acy)90 b(and)g(securit)-9 b(y)91 b(concerns.)-642 13170 y(The)163 b(issues)i(are)e(complex)h(and) f(as)h(m)-9 b(uc)g(h)163 b(so)9 b(cial)165 b(as)f(tec)-9 b(hnical.)-642 13539 y(Ho)g(w)g(ev)g(er,)151 b(our)144 b(approac)-9 b(h)143 b(can)h(only)f(succeed)h(if)h(users)f(feel)g(safe) -642 13908 y(con)-9 b(tributing)76 b(to)g(the)g(shared)f(data)h(p)9 b(o)g(ol.)133 b(Th)-9 b(us,)83 b(addressing)74 b(these)-642 14277 y(concerns)108 b(is)h(b)9 b(oth)107 b(a)h(moral)g(and)f(a)h (practical)i(imp)9 b(erativ)-9 b(e.)-326 14646 y(The)100 b(exp)9 b(eriences)100 b(of)h(Netscap)9 b(e/Mozilla)100 b(with)h(crash)h(feedbac)-9 b(k)-642 15015 y(systems)144 b(ma)-9 b(y)144 b(b)9 b(e)143 b(illustrativ)-9 b(e.)254 b(W)-27 b(e)144 b(ha)-9 b(v)g(e)142 b(met)i(with)h(mem)-9 b(b)9 b(ers)-642 15384 y(of)135 b(the)f(Netscap)9 b(e)135 b(T)-27 b(alkbac)-9 b(k)133 b(T)-27 b(eam,)141 b(a)134 b(group)g(of)g(qualit)-9 b(y)135 b(assur-)-642 15753 y(ance)154 b(engineers)f(who)g(manage)g(crash)h(rep)9 b(orts)155 b(from)f(the)g(auto-)-642 16123 y(mated)132 b(feedbac)-9 b(k)132 b(system.)220 b(Considerable)132 b(e\013ort)g(has)h(gone)f(in)-9 b(to)-642 16492 y(designing)83 b(the)h(clien)-9 b(t)86 b(side)e(of)h(this)g(system)g(so)f(that)h (users)g(are)f(fully)-642 16861 y(informed.)158 b(The)112 b(system)i(is)f(strictly)i(opt-in)e(on)g(a)g(p)9 b(er-failure)112 b(ba-)-642 17230 y(sis,)145 b(or)137 b(ma)-9 b(y)137 b(b)9 b(e)136 b(disabled)g(en)-9 b(tirely)-27 b(.)231 b(The)136 b(user)h(ma)-9 b(y)136 b(optionally)-642 17599 y(examine)125 b(the)i(con)-9 b(ten)g(ts)127 b(of)g(the)g(crash)g(rep)9 b(ort,)132 b(and)126 b(no)g(informa-)-642 17968 y(tion)100 b(is)i(ev)-9 b(er)99 b(sen)-9 b(t)101 b(to)g(Netscap)9 b(e)100 b(without)g(explicit)h(authorization.)-642 18337 y(Figure)112 b(5)g(sho)-9 b(ws)112 b(the)h(sort)g(of)f(information)h (presen)-9 b(ted)111 b(eac)-9 b(h)112 b(time)-642 18706 y(Netscap)9 b(e)108 b(or)g(Mozilla)g(has)g(crash)h(data)e(to)h(submit.) -326 19075 y(Not)154 b(all)f(users)h(will)g(read)f(or)g(understand)f (these)h(assurances.)-642 19444 y(Ev)-9 b(en)118 b(so,)k(there)d(are)g (some)f(tec)-9 b(hnical)120 b(measures)e(w)-9 b(e)119 b(can)g(tak)-9 b(e)118 b(to)-642 19813 y(protect)87 b(the)f(priv)-18 b(acy)85 b(of)h(ev)-9 b(en)85 b(non-tec)-9 b(hnically)86 b(sa)-9 b(vvy)85 b(users.)137 b(The)-642 20182 y(v)-9 b(ery)93 b(nature)h(of)g(the)g(sampling)f(pro)9 b(cess)95 b(itself)g(a\013ords)f(a)f(degree)g(of)-642 20551 y(anon)-9 b(ymit)g(y)-27 b(.)134 b(W)-27 b(e)83 b(collect)h(a)f(small)g(bit)h(of) f(information)f(from)h(man)-9 b(y)-27 b(,)-642 20920 y(man)-9 b(y)107 b(users;)h(an)-9 b(y)107 b(single)h(run)g(has)g (little)i(rev)-9 b(elatory)107 b(p)9 b(o)-9 b(w)g(er.)-326 21289 y(Some)78 b(data,)84 b(or)79 b(some)f(parts)h(of)g(execution,)84 b(ma)-9 b(y)78 b(b)9 b(e)78 b(so)h(sensitiv)-9 b(e)-642 21658 y(that)134 b(ev)-9 b(en)133 b(this)i(di\013use)f(information)g (leak)-18 b(age)132 b(is)j(unacceptable.)-642 22027 y(Sev)-9 b(eral)111 b(t)-9 b(yp)9 b(e-based)111 b(analyses)g(under)h(the)g (broad)f(heading)g(of)i(se-)-642 22396 y(cure)g(information)g(\015o)-9 b(w)112 b([7,)i(26,)g(28])f(ma)-9 b(y)112 b(b)9 b(e)113 b(helpful)f(here.)159 b(Suc)-9 b(h)-642 22765 y(systems)107 b(statically)h(iden)-9 b(tify)107 b(parts)g(of)g(a)f(program)g(that)h (manipu-)p 8923 -628 7863 15 v 8923 9442 15 10070 v 9032 -338 a Fh(The)148 b(Netscap)8 b(e)148 b(Qualit)-8 b(y)149 b(F)-25 b(eedbac)-8 b(k)148 b(Agen)-8 b(t)148 b(is)h(a)g(feature)g (that)9032 -22 y(gathers)112 b(prede\014ned)e(tec)-8 b(hnical)111 b(information)i(ab)8 b(out)112 b(Comm)-8 b(uni-)9032 295 y(cator)111 b(and)f(sends)g(it)g(bac)-8 b(k)109 b(to)i(the)f(Netscap)8 b(e)110 b(soft)-8 b(w)g(are)110 b(dev)-8 b(elop-)9032 611 y(men)g(t)92 b(team)h(so)g(they)f(can)h (impro)-8 b(v)g(e)92 b(future)h(v)-8 b(ersions)92 b(of)i(Comm)-8 b(u-)9032 927 y(nicator.)9032 1365 y(.)50 b(.)f(.)9032 1802 y(No)96 b(information)h(is)f(sen)-8 b(t)95 b(un)-8 b(til)95 b(y)-8 b(ou)96 b(can)f(examine)h(exactly)f(what)9032 2118 y(is)k(b)8 b(eing)100 b(sen)-8 b(t.)9032 2556 y(.)50 b(.)f(.)9032 2993 y(Information)73 b(gathered)f(b)-8 b(y)70 b(this)i(agen)-8 b(t)71 b(is)g(limited)g(to)h(information)9032 3309 y(ab)8 b(out)148 b(the)f(state)h(of)g(Comm)-8 b(unicator)148 b(when)e(it)i(has)f(an)h(error.)9032 3626 y(Other)89 b(sensitiv)-8 b(e)87 b(information)k(suc)-8 b(h)88 b(as)h(w)-8 b(eb)88 b(sites)g(visited,)i(email)9032 3942 y(messages,)99 b(email)h(addresses,)f(passw)-8 b(ords,)100 b(and)g(pro\014les)g(will)g (not)9032 4258 y(b)8 b(e)99 b(collected.)9032 4696 y(All)75 b(information)i(Netscap)8 b(e)74 b(collects)h(via)g(this)g(agen)-8 b(t)76 b(will)e(b)8 b(e)76 b(used)9032 5012 y(only)90 b(for)h(the)e(purp)8 b(oses)91 b(of)f(\014xing)g(pro)8 b(duct)91 b(defects)e(and)h(impro)-8 b(v-)9032 5328 y(ing)129 b(the)g(qualit)-8 b(y)129 b(of)h(Netscap)8 b(e)128 b(Comm)-8 b(unicator.)223 b(This)128 b(data)i(is)9032 5645 y(for)83 b(in)-8 b(ternal)83 b(diagnostic)g(purp)8 b(oses)83 b(only)f(and)h (will)f(not)g(b)8 b(e)83 b(shared)9032 5961 y(with)99 b(third)h(parties.)9032 6398 y(F)-25 b(or)138 b(more)h(information)g (on)f(Netscap)8 b(e's)137 b(general)i(priv)-17 b(acy)138 b(p)8 b(ol-)9032 6715 y(icy)-25 b(,)170 b(go)157 b(to:)247 b Fi(<)18 b(http://home.netscape.com/legal\_noti)q(ces)q(/)9032 7031 y(privacy.html>)9032 7468 y Fh(Comm)-8 b(unicator)85 b(activ)-17 b(ates)84 b(the)g(agen)-8 b(t)84 b(dialog)h(b)8 b(o)-8 b(x)84 b(when)f(a)i(prob-)9032 7785 y(lem)184 b(o)8 b(ccurs,)207 b(or)185 b(when)f(it)h(has)g(gathered)h(information) g(that)9032 8101 y(Netscap)8 b(e)145 b(needs)f(to)h(impro)-8 b(v)g(e)145 b(future)h(v)-8 b(ersions)144 b(of)i(Comm)-8 b(uni-)9032 8417 y(cator.)9032 8855 y(.)50 b(.)f(.)9032 9292 y(If)99 b(y)-8 b(ou)100 b(prefer)g(to)g(disable)f(the)h(agen)-8 b(t,)100 b(y)-8 b(ou)99 b(ma)-8 b(y)99 b(do)h(so)g(here:)p 16771 9442 V 8923 9456 7863 15 v 8636 10062 a Fv(Figure)169 b(5:)252 b(Priv)-21 b(acy)168 b(assurances)f(as)g(used)g(in)h(Netscap) 10 b(e)8636 10431 y(Qualit)-10 b(y)124 b(F)-31 b(eedbac)-10 b(k)124 b(Agen)-10 b(t)8636 11485 y Fw(late)126 b(sensitiv)-9 b(e)125 b(data;)133 b(w)-9 b(e)124 b(can)h(a)-9 b(v)g(oid)124 b(inserting)h(instrumen)-9 b(tation)8636 11854 y(that)126 b(rev)-9 b(eals)125 b(suc)-9 b(h)126 b(v)-18 b(alues.)196 b(Of)127 b(course,)j(this)c(will)h(mak)-9 b(e)125 b(it)h(di\016-)8636 12223 y(cult)d(to)g(trac)-9 b(k)122 b(bugs)f(in)h(securit)-9 b(y-sensitiv)g(e)123 b(parts)f(of)g(an)g(applica-)8636 12592 y(tion,)129 b(but)c(that)f(trade-o\013)g(is)h(alw)-9 b(a)g(ys)123 b(presen)-9 b(t:)177 b(one)123 b(can)i(only)e(\014x)8636 12961 y(bugs)d(ab)9 b(out)119 b(whic)-9 b(h)120 b(the)g(customer)h(is)g (willing)f(to)h(pro)-9 b(vide)119 b(useful)8636 13330 y(information.)8953 13699 y(When)95 b(using)g(statistical)k(mo)9 b(dels)95 b(suc)-9 b(h)96 b(as)g(that)g(of)g(Section)g(3.3,)8636 14068 y(an)113 b(attractiv)-9 b(e)115 b(mec)-9 b(hanism)113 b(for)h(protecting)f(user)h(anon)-9 b(ymit)g(y)112 b(b)9 b(e-)8636 14437 y(comes)95 b(a)-9 b(v)-18 b(ailable.)138 b(Man)-9 b(y)93 b(statistical)k(analyses)c(are)g(c)-9 b(haracterized)8636 14806 y(b)g(y)134 b(a)h(set)g(of)g Fu(su\016cient)140 b(statistics)26 b Fw(:)196 b(a)135 b(collection)g(of)g(v)-18 b(alues)133 b(that)8636 15175 y(completely)139 b(capture)h(the)f(in)-9 b(ternal)139 b(state)h(of)f(the)h(analysis.)238 b(F)-27 b(or)8636 15544 y(example,)103 b(if)h(one)e(w)-9 b(an)g(ted)101 b(to)i(compute)g(the)f(mean)g(of)h(a)g(stream)g(of)8636 15913 y(n)-9 b(um)g(b)9 b(ers,)127 b(then)c(a)g(running)g(total)h(and)e (a)h(coun)-9 b(t)124 b(w)-9 b(ould)122 b(b)9 b(e)123 b(su\016-)8636 16282 y(cien)-9 b(t)92 b(statistics:)139 b(the)91 b(mean)g(can)g(b)9 b(e)90 b(computed)h(from)g(these)g(with-) 8636 16651 y(out)129 b(retaining)g(the)g(individual)f(n)-9 b(um)g(b)9 b(ers)129 b(in)g(the)g(stream.)208 b(Simi-)8636 17020 y(larly)-27 b(,)115 b(once)e(the)g(logistic)i(regression)e (parameters)f(ha)-9 b(v)g(e)112 b(b)9 b(een)112 b(up-)8636 17389 y(dated)93 b(with)g(a)g(new)g(trace,)k(the)c(trace)h(itself)h(ma) -9 b(y)92 b(b)9 b(e)93 b(discarded.)139 b(If)8636 17758 y(the)80 b(analysis)g(host)g(is)h(compromised,)k(an)79 b(attac)-9 b(k)g(er)80 b(cannot)f(reco)-9 b(v)g(er)8636 18127 y(the)108 b(precise)h(details)f(of)g(an)-9 b(y)108 b(single)g(past)g(trace.)8953 18496 y(A)121 b(statistical)j(approac)-9 b(h)120 b(designed)g(to)h(cop)9 b(e)121 b(with)h(noise)f(o\013ers)8636 18865 y(some)141 b(protection)f(against)g(malicious)h(users)g(who)f (migh)-9 b(t)140 b(try)h(to)8636 19234 y(p)9 b(oison)109 b(the)g(cen)-9 b(tral)110 b(database)e(with)h(b)9 b(ogus)109 b(data,)g(or)g(o)-9 b(v)g(erwhelm)8636 19603 y(it)133 b(with)e(data)g(represen)-9 b(ting)130 b(the)h(particular)h(bugs)e (they)h(wish)g(to)8636 19972 y(see)88 b(\014xed.)137 b(Recen)-9 b(t)89 b(w)-9 b(ork)87 b(on)h(protecting)g(priv)-18 b(acy)88 b(and)f(prev)-9 b(en)g(ting)8636 20341 y(abuse)94 b(in)g(collab)9 b(orativ)-9 b(e)94 b(\014ltering)g(systems)h(ma)-9 b(y)94 b(also)g(b)9 b(e)94 b(applica-)8636 20710 y(ble)108 b([9,)h(11].)8636 21570 y Fx(6.)422 b(CONCLUSIONS)8953 22027 y Fw(W)-27 b(e)84 b(ha)-9 b(v)g(e)84 b(describ)9 b(ed)84 b(a)g(sampling)g(infrastructure)i(for)f(gathering)8636 22396 y(information)136 b(ab)9 b(out)136 b(soft)-9 b(w)g(are)136 b(from)g(the)h(set)g(of)f(runs)g(pro)9 b(duced)8636 22765 y(b)-9 b(y)128 b(its)i(user)e(comm)-9 b(unit)g(y)-27 b(.)204 b(T)-27 b(o)128 b(ensure)f(that)i(rare)f(ev)-9 b(en)g(ts)127 b(are)h(ac-)p eop %%Page: 13 13 13 12 bop -642 -291 a Fw(curately)131 b(represen)-9 b(ted,)135 b(w)-9 b(e)130 b(use)h(a)f(Bernoulli)h(pro)9 b(cess)131 b(to)g(do)f(the)-642 78 y(sampling,)152 b(and)143 b(w)-9 b(e)143 b(ha)-9 b(v)g(e)142 b(describ)9 b(ed)143 b(an)g(e\016cien)-9 b(t)144 b(implemen)-9 b(ta-)-642 447 y(tion)104 b(of)h(that)f(pro)9 b(cess.)144 b(W)-27 b(e)104 b(ha)-9 b(v)g(e)103 b(also)h(presen)-9 b(ted)103 b(sev)-9 b(eral)104 b(sample)-642 816 y(applications:)196 b(sharing)133 b(the)h(o)-9 b(v)g(erhead)131 b(of)j(assertions,)141 b(predicate)-642 1185 y(guessing)99 b(and)g(elimination)h(to)g(isolate) h(a)f(deterministic)h(bug,)g(and)-642 1555 y(regularized)108 b(logistic)i(regression)f(to)g(isolate)g(a)g(non-deterministic)-642 1924 y(memory)e(corruption)h(error.)-642 2755 y Fx(7.)422 b(REFERENCES)-480 3189 y Fw([1])159 b(J.)108 b(M.)h(Anderson,)e(L.)i (M.)f(Berc,)i(J.)e(Dean,)g(S.)g(Ghema)-9 b(w)g(at,)22 3558 y(M.)108 b(R.)h(Henzinger,)f(S.-T.)g(A.)h(Leung,)e(R.)i(L.)g (Sites,)g(M.)f(T.)22 3927 y(V)-27 b(andev)-9 b(o)9 b(orde,)105 b(C.)j(A.)g(W)-27 b(aldspurger,)108 b(and)f(W.)h(E.)h(W)-27 b(eihl.)22 4296 y(Con)-9 b(tin)g(uous)106 b(pro\014ling:)144 b(Where)107 b(ha)-9 b(v)g(e)107 b(all)h(the)g(cycles)i(gone?)22 4665 y Fu(A)-8 b(CM)116 b(T)-25 b(r)-17 b(ansactions)116 b(on)g(Computer)g(Systems)p Fw(,)22 5034 y(15\(4\):357{390,)105 b(No)-9 b(v.)108 b(1997.)-480 5438 y([2])159 b(M.)108 b(Arnold)g(and)f(B.)i(Ryder.)f(A)g(framew)-9 b(ork)107 b(for)h(reducing)22 5807 y(the)g(cost)h(of)f(instrumen)-9 b(ted)108 b(co)9 b(de.)107 b Fu(A)-8 b(CM)117 b(SIGPLAN)22 6176 y(Notic)-17 b(es)p Fw(,)109 b(36\(5\):168{179,)c(Ma)-9 b(y)108 b(2001.)-480 6580 y([3])159 b(M.)108 b(Arnold)g(and)f(P)-27 b(.)109 b(F.)g(Sw)-9 b(eeney)-27 b(.)106 b(Appro)-9 b(ximating)106 b(the)22 6949 y(calling)i(con)-9 b(text)108 b(tree)g(via)g(sampling.)g (Researc)-9 b(h)108 b(rep)9 b(ort)108 b(R)-9 b(C)22 7318 y(21789)106 b(\(98099\),)h(IBM)i(T.J.)g(W)-27 b(atson)108 b(Researc)-9 b(h)107 b(Cen)-9 b(ter,)22 7687 y(Y)-27 b(orkto)-9 b(wn)106 b(Heigh)-9 b(ts,)109 b(New)e(Y)-27 b(ork,)108 b(July)g(7)g(2000.)-480 8092 y([4])159 b(Asso)9 b(ciation)108 b(for)h(Computing)d(Mac)-9 b(hinery)-27 b(.)108 b Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)22 8461 y(the)e(International)f(Confer)-17 b(enc)g(e)117 b(on)f(Softwar)-17 b(e)115 b(Engine)-17 b(ering)p Fw(,)22 8830 y(Buenos)107 b(Aires,)i(Argen)-9 b(tina,)107 b(Ma)-9 b(y)107 b(2002.)-480 9234 y([5])159 b(J.)108 b(Bo)-9 b(wring,)108 b(A.)h(Orso,)f(and)f(M.)i(J.)g(Harrold.)e(Monitoring)22 9603 y(deplo)-9 b(y)g(ed)106 b(soft)-9 b(w)g(are)107 b(using)h(soft)-9 b(w)g(are)108 b(tomograph)-9 b(y)-27 b(.)106 b(In)22 9972 y(M.)i(B.)h(Dwy)-9 b(er,)108 b(editor,)h Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)e(the)h(2002)f(A)-8 b(CM)22 10341 y(SIGPLAN-SIGSOFT)116 b(workshop)g(on)g(Pr)-17 b(o)g(gr)g(am)117 b(analysis)22 10710 y(for)e(softwar)-17 b(e)116 b(to)-17 b(ols)116 b(and)g(engine)-17 b(ering)116 b(\(P)-25 b(ASTE-02\))p Fw(,)22 11079 y(v)-9 b(olume)107 b(28,)g(1)h(of)h Fu(SOFTW)-25 b(ARE)116 b(ENGINEERING)22 11448 y(NOTES)p Fw(,)109 b(pages)e(2{9.)g(A)-9 b(CM)108 b(Press,)h(2002.)-480 11852 y([6])159 b(L.)109 b(Breiman,)f(J.)g(H.)h (F)-27 b(riedman,)107 b(R.)i(A.)g(Olshen,)f(and)f(C.)h(J.)22 12221 y(Stone.)f Fu(Classi\014c)-17 b(ation)115 b(and)h(R)-17 b(e)g(gr)g(ession)117 b(T)-25 b(r)-17 b(e)g(es)p Fw(.)22 12590 y(Statistics/Probabilit)-9 b(y)109 b(Series.)f(W)-27 b(adsw)-9 b(orth)108 b(Publishing)22 12959 y(Compan)-9 b(y)-27 b(,)106 b(Belmon)-9 b(t,)108 b(California,)g(U.S.A.,)h(1984.) -480 13364 y([7])159 b(P)-27 b(.)109 b(Broadw)-9 b(ell,)107 b(M.)i(Harren,)e(and)h(N.)g(Sastry)-27 b(.)108 b(Scrash:)145 b(A)22 13733 y(system)108 b(for)h(generating)d(secure)i(crash)g (information.)g(In)22 14102 y Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)e(the)h(11th)f(USENIX)h(Se)-17 b(curity)116 b(Symp)-17 b(osium)p Fw(,)22 14471 y(W)-27 b(ashington,)107 b(DC,)i(Aug.)e(4{8)g (2003.)g(T)-27 b(o)108 b(app)9 b(ear.)-480 14875 y([8])159 b(M.)108 b(Burro)-9 b(ws,)109 b(U.)f(Erlingson,)g(S.-T.)h(Leung,)22 15244 y(M.)f(V)-27 b(andev)-9 b(o)9 b(orde,)105 b(C.)k(W)-27 b(aldspurger,)107 b(K.)h(W)-27 b(alk)-9 b(er,)108 b(and)22 15613 y(B.)h(W)-27 b(eihl.)108 b(E\016cien)-9 b(t)109 b(and)e(\015exible)g(v)-18 b(alue)107 b(sampling.)h Fu(A)-8 b(CM)22 15982 y(SIGPLAN)116 b(Notic)-17 b(es)p Fw(,)110 b(35\(11\):160{167,)105 b(No)-9 b(v.)107 b(2000.)-480 16386 y([9])159 b(J.)108 b(Cann)-9 b(y)-27 b(.)107 b(Collab)9 b(orativ)-9 b(e)107 b(\014ltering)h(with)g(priv)-18 b(acy)-27 b(.)108 b(In)22 16755 y Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)e(the)h(IEEE)g(Symp)-17 b(osium)114 b(on)i(R)-17 b(ese)g(ar)g(ch)118 b(in)22 17124 y(Se)-17 b(curity)116 b(and)g(Privacy)p Fw(,)108 b(pages)f(45{57,)g(Oakland,)g(CA,)h(Ma)-9 b(y)22 17493 y(2002.)107 b(IEEE)i(Computer)e(So)9 b(ciet)-9 b(y)-27 b(,)108 b(T)-27 b(ec)-9 b(hnical)108 b(Committee)22 17862 y(on)f(Securit)-9 b(y)108 b(and)g(Priv)-18 b(acy)-27 b(,)108 b(IEEE)h(Computer)e(So)9 b(ciet)-9 b(y)22 18231 y(Press.)-642 18635 y([10])158 b(M.)108 b(C.)h(Carlisle.)g Fu(Olden:)149 b(Par)-17 b(al)17 b(lelizing)115 b(Pr)-17 b(o)g(gr)g(ams)117 b(with)22 19004 y(Dynamic)e(Data)h(Structur)-17 b(es)117 b(on)e(Distribute)-17 b(d-Memory)22 19374 y(Machines)p Fw(.)108 b(PhD)h(thesis,)g(Departmen)-9 b(t)107 b(of)i(Computer)22 19743 y(Science,)f(Princeton)g(Univ)-9 b(ersit)g(y)-27 b(,)109 b(June)e(1996.)-642 20147 y([11])158 b(C.)108 b(Dellaro)9 b(cas.)109 b(Imm)-9 b(unizing)108 b(online)f(reputation)h (rep)9 b(orting)22 20516 y(systems)108 b(against)g(unfair)g(ratings)g (and)f(discriminatory)22 20885 y(b)9 b(eha)-9 b(vior.)106 b(In)j Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)e(the)h(2nd)e(A)-8 b(CM)117 b(Confer)-17 b(enc)g(e)22 21254 y(on)115 b(Ele)-17 b(ctr)g(onic)118 b(Commer)-17 b(c)g(e)117 b(\(EC-00\))p Fw(,)109 b(pages)e(150{157.)22 21623 y(A)-9 b(CM,)108 b(2000.)-642 22027 y([12])158 b(B.)109 b(Demsky)e(and)g(M.)i(C.)f (Rinard.)h(Role-based)e(exploration)22 22396 y(of)h(ob)18 b(ject-orien)-9 b(ted)108 b(programs.)f(In)h Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)119 b(of)d(the)22 22765 y(International)e (Confer)-17 b(enc)g(e)118 b(on)d(Softwar)-17 b(e)116 b(Engine)-17 b(ering)137 b Fw([4].)8636 -291 y([13])158 b(M.)109 b(D.)g(Ernst,)g(J.)g(Co)9 b(c)-9 b(krell,)108 b(W.)h(G.)g(Grisw)-9 b(old,)109 b(and)9300 78 y(D.)g(Notkin.)f (Dynamically)g(disco)-9 b(v)g(ering)107 b(lik)-9 b(ely)108 b(program)9300 447 y(in)-9 b(v)-18 b(arian)-9 b(ts)108 b(to)g(supp)9 b(ort)108 b(program)f(ev)-9 b(olution.)107 b Fu(IEEE)9300 816 y(T)-25 b(r)-17 b(ansactions)116 b(on)f(Softwar)-17 b(e)116 b(Engine)-17 b(ering)p Fw(,)109 b(27\(2\):1{25,)9300 1185 y(F)-27 b(eb.)108 b(2001.)8636 1590 y([14])158 b(D.)109 b(Esler.)g(W)-27 b(elcome)108 b(to)h(the)f(virtual)g(ramp.)g Fu(Overhaul)117 b(&)9300 1959 y(Maintenanc)-17 b(e)p Fw(,)109 b(VI)9 b(I\(2\):55,)109 b(Mar.)f(2001.)8636 2363 y([15])158 b(T.)109 b(R.)g(Golub,)f(D.)h(K.)f(Slonim,)g(P)-27 b(.)109 b(T)-27 b(ama)-9 b(y)g(o,)106 b(C.)j(Huard,)9300 2732 y(M.)g(Gaasen)-9 b(b)9 b(eek,)106 b(J.)i(P)-27 b(.)109 b(Mesiro)-9 b(v,)108 b(H.)h(Coller,)f(M.)h(L.)f(Loh,)9300 3101 y(J.)h(R.)g(Do)-9 b(wning,)107 b(M.)i(A.)f(Caligiuri,)h(C.)f(D.)h (Blo)9 b(om\014eld,)108 b(and)9300 3470 y(E.)h(S.)f(Lander.)g (Molecular)g(classi\014cation)h(of)f(cancer:)145 b(class)9300 3839 y(disco)-9 b(v)g(ery)108 b(and)f(class)i(prediction)f(b)-9 b(y)108 b(gene)e(expression)9300 4208 y(monitoring.)i Fu(Scienc)-17 b(e)p Fw(,)109 b(286\(5439\):531{537,)104 b(1999.)8636 4612 y([16])158 b(S.)109 b(Hangal)d(and)h(M.)i(S.)f(Lam.)h (T)-27 b(rac)-9 b(king)107 b(do)-9 b(wn)107 b(soft)-9 b(w)g(are)9300 4981 y(bugs)108 b(using)f(automatic)i(anomaly)d (detection.)i(In)9300 5350 y Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)119 b(of)d(the)g(International)f(Confer)-17 b(enc)g(e)117 b(on)9300 5719 y(Softwar)-17 b(e)116 b(Engine)-17 b(ering)136 b Fw([4],)109 b(pages)e(291{301.)8636 6123 y([17])158 b(T.)109 b(Hastie,)f(R.)h(Tibshirani,)f(and)g(J.)g(F)-27 b(riedman.)108 b Fu(The)9300 6493 y(Elements)113 b(of)f(Statistic)-17 b(al)112 b(L)-17 b(e)g(arning.)104 b Fw(Stats.)i(Springer,)e(2001.)8636 6897 y([18])158 b(M.)109 b(Hirzel)g(and)e(T.)i(Chilim)-9 b(bi.)108 b(Burst)-9 b(y)109 b(tracing:)145 b(A)9300 7266 y(framew)-9 b(ork)107 b(for)i(lo)-9 b(w-o)g(v)g(erhead)105 b(temp)9 b(oral)108 b(pro\014ling.)f(In)h Fu(4th)9300 7635 y(A)-8 b(CM)117 b(Workshop)f(on)g(F)-25 b(e)-17 b(e)g(db)g(ack-Dir)g(e)g(cte)g(d)121 b(and)116 b(Dynamic)9300 8004 y(Optimization)p Fw(,)106 b(Austin,)j(T)-27 b(exas,)107 b(Dec.)i(1)f(2001.)8636 8408 y([19])158 b(Microsoft)110 b(Corp.)d(Microsoft)j(2002)c(ann)-9 b(ual)107 b(rep)9 b(ort)108 b(and)9300 8777 y(form)h(10-K.)f(Av)-18 b(ailable)106 b(at)9300 9146 y FA(<)18 b(http://www.microsoft.com/msft/ar02/>)g Fw(,)9300 9515 y(Redmond,)107 b(W)-27 b(ashington,)107 b(2002.)8636 9919 y([20])158 b(B.)109 b(Miller,)h(D.)f(Koski,)f(C.)g(P) -27 b(.)109 b(Lee,)f(V.)g(Magan)-9 b(t)g(y)-27 b(,)9300 10288 y(R.)109 b(Murth)-9 b(y)-27 b(,)108 b(A.)h(Natara)18 b(jan,)107 b(and)g(J.)i(Steidl.)f(F)-27 b(uzz)9300 10657 y(revisited:)145 b(A)108 b(re-examination)f(of)h(the)g(reliabilit)-9 b(y)109 b(of)f(UNIX)9300 11026 y(utilities)i(and)d(services.)i(T)-27 b(ec)-9 b(hnical)108 b(rep)9 b(ort,)108 b(Computer)9300 11395 y(Science)g(Departmen)-9 b(t,)108 b(Univ)-9 b(ersit)g(y)108 b(of)g(Wisconsin,)9300 11764 y(Madison,)g(WI,)h(1995.)8636 12169 y([21])158 b(G.)109 b(Necula,)f(S.)g(McP)-9 b(eak,)108 b(and)g(W.)g(W)-27 b(eimer.)109 b Fl(CCured)p Fw(:)9300 12538 y(T)-9 b(yp)9 b(e-safe)107 b(retro\014tting)i(of)f(legacy)f(co)9 b(de.)108 b(In)h(C.)f(Norris)h(and)9300 12907 y(J.)g(James)f(B.)h(F)-27 b(en)-9 b(wic)g(k,)108 b(editors,)g Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings) 119 b(of)d(the)g(2002)9300 13276 y(A)-8 b(CM)117 b(SIGPLAN-SIGA)-8 b(CT)118 b(Symp)-17 b(osium)114 b(on)i(Principles)9300 13645 y(of)g(Pr)-17 b(o)g(gr)g(amming)116 b(L)-17 b(anguages)117 b(\(POPL-02\))p Fw(,)109 b(v)-9 b(olume)107 b(37,)g(1)9300 14014 y(of)i Fu(A)-8 b(CM)116 b(SIGPLAN)h(Notic)-17 b(es)p Fw(,)109 b(pages)e(128{139.)f(A)-9 b(CM)9300 14383 y(Press,)109 b(2002.)8636 14787 y([22])158 b(S.)109 b(P)-27 b(.)108 b(Reiss)h(and)f(M.)g(Renieris.)h(Enco)9 b(ding)107 b(program)9300 15156 y(executions.)h(In)g Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)119 b(of)d(the)g(23r)-17 b(d)117 b(International)9300 15525 y(Confer)-17 b(enc)g(e)118 b(on)d(Softwar)-17 b(e)116 b(Engene)-17 b(ering)117 b(\(ICSE-01\))p Fw(,)109 b(pages)9300 15894 y(221{232.)d(IEEE)j(Computer)e(So)9 b(ciet)-9 b(y)-27 b(,)108 b(2001.)8636 16298 y([23])158 b(SPEC)109 b(95.)e(Standard)g(P) -9 b(erformance)107 b(Ev)-18 b(aluation)9300 16667 y(Corp)9 b(oration)107 b(Benc)-9 b(hmarks.)9300 17036 y FA(<)18 b(http://www.spec.org/osg/cpu95/CINT95/>)g Fw(,)111 b(July)9300 17405 y(1995.)8636 17810 y([24])158 b(R.)109 b(Tibshirani,)f(T.)h (Hastie,)f(B.)h(Narasimhan,)e(and)g(G.)i(Ch)-9 b(u.)9300 18179 y(Diagnosis)108 b(of)h(m)-9 b(ultiple)108 b(cancer)g(t)-9 b(yp)9 b(es)108 b(b)-9 b(y)108 b(shrunk)-9 b(en)9300 18548 y(cen)g(troids)106 b(of)g(gene)e(expression.)h Fu(PNAS)p Fw(,)i(99\(10\):6567{6572,)9300 18917 y(2002.)8636 19321 y([25])158 b(O.)109 b(T)-27 b(raub,)107 b(S.)h(Sc)-9 b(hec)g(h)g(ter,)109 b(and)e(M.)h(D.)h(Smith.)g(Ephemeral)9300 19690 y(instrumen)-9 b(tation)108 b(for)g(ligh)-9 b(t)g(w)g(eigh)g(t) 108 b(program)f(pro\014ling.)9300 20059 y(Unpublished)g(tec)-9 b(hnical)108 b(rep)9 b(ort,)108 b(Departmen)-9 b(t)108 b(of)9300 20428 y(Electrical)j(Engineering)106 b(and)h(Computer)g (Science,)9300 20797 y(Hardw)-9 b(ard)103 b(Univ)-9 b(ersit)g(y)-27 b(,)106 b(Cam)-9 b(bridge,)104 b(Massac)-9 b(h)g(usetts,)106 b(June)9300 21166 y(2000.)8636 21570 y([26])158 b(D.)109 b(M.)g(V)-27 b(olpano)106 b(and)h(G.)i(Smith.)g(A)f(t)-9 b(yp)9 b(e-based)106 b(approac)-9 b(h)9300 21939 y(to)109 b(program)d(securit)-9 b(y)-27 b(.)109 b(In)g(M.)f(Bidoit)h(and)e(M.)i (Dauc)-9 b(het,)9300 22308 y(editors,)109 b Fu(T)-25 b(APSOFT)117 b('97:)148 b(The)-17 b(ory)117 b(and)f(Pr)-17 b(actic)g(e)118 b(of)9300 22677 y(Softwar)-17 b(e)116 b(Development)p Fw(,)109 b(v)-9 b(olume)107 b(1214)g(of)h Fu(L)-17 b(e)g(ctur)g(e)118 b(Notes)p eop %%Page: 14 14 14 13 bop 22 -291 a Fu(in)115 b(Computer)i(Scienc)-17 b(e)p Fw(,)109 b(pages)e(607{621.)e(Springer-V)-27 b(erlag,)22 78 y(1997.)-642 483 y([27])158 b(J.)104 b(Whaley)-27 b(.)103 b(A)h(p)9 b(ortable)104 b(sampling-based)e(pro\014ler)h(for)h (Ja)-9 b(v)-18 b(a)22 852 y(virtual)108 b(mac)-9 b(hines.)108 b(In)g Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)119 b(of)d(the)g(A)-8 b(CM)117 b(2000)22 1221 y(c)-17 b(onfer)g(enc)g(e)118 b(on)d(Java)i(Gr)-17 b(ande)p Fw(,)109 b(pages)e(78{87.)g(A)-9 b(CM)108 b(Press,)22 1590 y(2000.)8636 -291 y([28])158 b(S.)109 b(Zdancewic,)e(L.)i(Zheng,)e(N.)h(Nystrom,)h(and)e(A.)h(C.) 9300 78 y(My)-9 b(ers.)108 b(Un)-9 b(trusted)108 b(hosts)h(and)e (con\014den)-9 b(tialit)g(y:)144 b(Secure)9300 447 y(program)107 b(partitioning.)h(In)h Fu(Pr)-17 b(o)g(c)g(e)g(e)g(dings)118 b(of)e(the)g(18th)g(A)-8 b(CM)9300 816 y(Symp)-17 b(osium)115 b(on)g(Op)-17 b(er)g(ating)117 b(Systems)e(Principles)9300 1185 y(\(SOSP'01\))p Fw(,)107 b(pages)g(1{14.)g(Chateau)g(Lak)-9 b(e)107 b(Louise,)h(Ban\013,)9300 1555 y(Alb)9 b(erta,)108 b(Canada,)f(Oct.)i(2001.)e(App)9 b(eared)106 b(as)i(A)-9 b(CM)9300 1924 y(Op)9 b(erating)107 b(Systems)h(Review)g(35.5.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF