%!PS-Adobe-2.0 %%Creator: dvipsk 5.58a Copyright 1986, 1994 Radical Eye Software %%Title: hacker.dvi %%Pages: 5 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentPaperSizes: a4 %%EndComments %DVIPSCommandLine: dvips hacker.dvi %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1996.10.03:2108 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup 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 /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 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 dup 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 dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 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}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore 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 /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 39158280 55380996 1000 300 300 (hacker.dvi) @start /Fa 2 63 df<EC0380EC0F00143C14F0EB03C0010FC7FC133C13F0EA03C0000F C8FC123C12F0A2123C120FEA03C0EA00F0133C130FEB03C0EB00F0143C140FEC03801918 7D9520>60 D<12E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB0078141EEC07 80A2EC1E001478EB01E0EB0780011EC7FC1378EA01E0EA0780001EC8FC127812E019187D 9520>62 D E /Fb 34 121 df<EB3FC03801F0303803C0380007137CEA0F80A2143891C7 FCA4B512FCA2380F807CAE397FE1FF80A2191D809C1B>12 D<127012F812FCA3127C1204 A21208A3121012201240060E7D850D>44 D<127812FCA4127806067D850D>46 D<EA07F8EA1FFEEA3C1FEB0F80387C07C0127E127C123838000F80A2EB1E005BEA03F8EA 001EEB0F80EB07C0A214E01230127812FCA214C038780F80EB1F00EA1FFEEA07F8131B7E 9A18>51 D<38380180383FFF005B5B5B13C00030C7FCA4EA31F8EA361E38380F80EA3007 000013C014E0A3127812F8A214C012F038600F8038381F00EA1FFEEA07F0131B7E9A18> 53 D<137EEA03FF38078180380F03C0EA1E07123C387C03800078C7FCA212F813F8EAFB 0E38FA0780EAFC0314C000F813E0A41278A214C0123CEB0780381E0F00EA07FEEA03F813 1B7E9A18>I<1260387FFFE0A214C01480A238E00300EAC0065B5BC65AA25B13E0A21201 5B1203A41207A66C5A131C7D9B18>I<127812FCA412781200A6127812FCA4127806127D 910D>58 D<B512F814FF390FC01F80EC0FC0140715E0A515C0EC0F80EC3F00EBFFFE9038 C00F80EC07C0EC03E0A215F0A5EC07E0A2EC1FC0B6120014FC1C1C7E9B22>66 D<B512F814FF390FC01FC0EC07E0EC01F015F8140015FC157CA2157EA8157CA315F8A2EC 01F0EC07E0EC1FC0B6120014F81F1C7E9B25>68 D<B512F814FE390FC03F80140FEC07C0 15E0A515C0A2EC0F80EC3F00EBFFFC01C0C7FCABEAFFFCA21B1C7E9B21>80 D<3807F820381FFEE0EA3C07EA7801EA700012F01460A26C130012FEEAFFE0EA7FFE6C7E 1480000F13C06C13E0EA007FEB03F01301130012C0A214E07E38F001C0EAFC0338EFFF00 EA83FC141C7D9B1B>83 D<007FB512E0A238781F81007013800060146000E0147000C014 30A400001400B03807FFFEA21C1C7E9B21>I<39FFFC03FFA2390FC00030B3120715606C 6C13E03901F001C03900FC078090387FFE00EB0FF8201C7E9B25>I<EA0FF8EA1C1E383E 0F80130714C0121C1200137FEA07E7EA1F07123C127C12F8A3EA780B383E13F8EA0FE115 127F9117>97 D<B4FCA2121FA9EB3F80EBE1E0EB8070EB0078143CA2143EA6143CA21478 EB8070381EC1E0381C3F00171D7F9C1B>I<EA03FCEA0E0EEA1C1F123C1278130E00F8C7 FCA61278EB0180123C381C0300EA0E0EEA03F811127E9115>I<EA03FCEA0F07381C0380 383C01C0127814E012F8A2B5FC00F8C7FCA3127814607E6C13C0380F03803801FC001312 7F9116>101 D<137F3801E3803803C7C0EA0787120FEB8380EB8000A5EAFFF8A2EA0F80 AEEA7FF0A2121D809C0F>I<3803F0F0380E1F38EA3C0F3838073000781380A400381300 EA3C0FEA1E1CEA33F00030C7FCA3EA3FFF14C06C13E014F0387801F838F00078A3007013 70007813F0381E03C03807FF00151B7F9118>I<121E123FA4121EC7FCA6127FA2121FAE EAFFC0A20A1E7F9D0E>105 D<137813FCA413781300A6EA03FCA2EA007CB2127012F813 7813F0EA70E0EA1F800E26839D0F>I<B4FCA2121FA9EB03FCA2EB01C0EB0300130E5B5B 137813FC13BE131F7F1480EB07C0EB03E0130138FFE7FEA2171D7F9C19>I<B4FCA2121F B3A7EAFFE0A20B1D7F9C0E>I<39FF0FC07E903831E18F3A1F40F20780D980FC13C0A2EB 00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0381F40F0EB80F8A21300AB38 FFE7FFA218127F911B>I<EA01FC380F0780381C01C0003C13E0387800F0A200F813F8A6 007813F0A2383C01E0381E03C0380F07803801FC0015127F9118>I<38FF3F80EBE1E038 1F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0EB3F0090C7FCA6EAFFE0A2 171A7F911B>I<EAFE3E1347381E8F80A3381F070090C7FCAAEAFFE0A211127F9114>114 D<EA1FD8EA3078EA601812E0A2EAF000EAFF80EA7FE013F0EA1FF8EA07FCEA007CEAC01C A212E01318EAF830EACFC00E127E9113>I<1203A45AA25AA2EA3FFC12FFEA1F00A9130C A4EA0F08EA0798EA03F00E1A7F9913>I<38FF07F8A2EA1F00AC1301120F380786FFEA01 F818127F911B>I<38FFC1FCA2381F00601380000F13C0A23807C180A23803E300A213F7 EA01F613FE6C5AA21378A2133016127F9119>I<38FFC7FCA2381F81C0380F83803807C7 00EA03EEEA01FC5B1200137C13FEEA01DF38039F80EA070F380607C0380C03E038FF07FC A216127F9119>120 D E /Fc 1 16 df<EA03C0EA0FF0EA1FF8EA3FFCEA7FFEA2B5FCA4 EA7FFEA2EA3FFCEA1FF8EA0FF0EA03C010107E9115>15 D E /Fd 47 122 df<49B4FC011F13C090387F00E001FC7F3901F001F800031303EA07E0A26E5A6E 5A92C7FCA5B612F8A23807E001B3A53A7FFE1FFF80A2212A7FA925>12 D<123C127E12FFA6127EA8123CA81218A41200A6123C127E12FFA4127E123C082A7AA914 >33 D<383C01E0387E03F038FF07F8A2EB87FCA2EA7F83383D81EC3801800CA338030018 A300061330000E1370000C13604813C0383001800020130016147EA922>I<123C127EB4 FCA21380A2127F123D1201A3EA0300A31206120E120C5A5A122009147BA912>39 D<130C131C137CEA07FC12FF12F81200B3ADB512FCA216277BA621>49 D<EBFF80000713F0380E03F8381800FE48137F127C00FEEB3F807E15C0141FA2127E003C 133FC7FC1580A2EC7F00147E14FE5CEB01F0495A495A5C49C7FC131C5B4913C05B485A39 03800180EA070000061303000FB5FC5A5A481400B6FCA21A277DA621>I<EBFF80000713 F0380F01FC381C007E003E137F127FEC3F80A37E003E137FC71300A214FE5C495AEB07E0 EBFF80A2EB01F0EB00FC147E147FEC3F80A215C0A2123C127EB4FCA21580A248EB7F0012 7C003813FE381F01F83807FFF0C613801A277DA621>I<141C143CA2147C14FC1301A213 031307130E130C131813381370136013C01201EA038013001206120E5A12185A12705AB6 12F0A2C7EAFC00A990383FFFF0A21C277EA621>I<00181306381F803EEBFFFC5C5C5C14 8049C7FC0018C8FCA7EB7F803819FFF0381B80F8381E007E00187FC7FCEC1F80A215C0A3 127C12FEA315805A0078133F006014006C133E001C5B380F01F83807FFE0C690C7FC1A27 7DA621>I<EB07F0EB3FFCEBFC0E3801E0073907C01F80EB803F120FEA1F005AEC1F0091 C7FC127EA312FEEB1FE0EB7FF8EB407C497E00FF133F9038001F80A25A15C0A4127EA312 3E1580123F6C14006C133E6C6C5A3803E0F86CB45A38003F801A277DA621>I<1230123C 003FB512E0A215C0481480A215003870000600605B5C5A5C5CC75A495AA249C7FC5BA213 0E131EA2133EA25BA313FCA41201A76C5A13701B297CA821>I<123C127E12FFA4127E12 3C1200AB123C127E12FFA4127E123C081B7B9A12>58 D<B612F8EDFF803A03F8001FC0ED 07F0ED03F816FC150116FEA616FC150316F8ED07F0ED1FE0EDFF8090B5EAFE00EDFFC090 39F8000FF0ED03F816FC1501ED00FEA216FFA616FE150116FC1503ED07F8ED1FE0B712C0 EDFE0028297EA82F>66 D<91387FE002903907FFF80690391FE01E0E90397F00039E01FC EB01FE4848EB007ED807F0143E5B4848141E001F150E485AA21606127F90C8FC16005AA9 7EA26D1406123FA36C6C140C120F6C6C14186D1438D801F814306C6C14E0017FEB03C090 391FE00F00903807FFFC9038007FE027297CA830>I<B612F815FF3A03F8003FE0ED07F0 ED01F86F7E167E821780161F17C0A2EE0FE0A417F0AA17E0A3EE1FC0A3EE3F8017005E16 FE4B5AED07F0ED1FE0B7128003F8C7FC2C297EA833>I<B71280A23903F8003F150FED03 C0A215011500A41660EC0180A21600A21403A2140F90B5FCA2EBF80F1403A21401A491C8 FCABB512F8A223297EA829>70 D<B539E00FFFFEA2D803F8C7EA3F80B190B7FCA201F8C7 123FB2B539E00FFFFEA22F297EA834>72 D<B512E0A23803F800B3B3B512E0A213297EA8 18>I<B512F8A2D803F8C8FCB3A516C0A4ED0180A31503A21507150F151FED3F0015FFB7 FCA222297EA828>76 D<D8FFF8ED1FFF6D5D000317C0017E156FA36D15CFA26D6CEB018F A26D6CEB030FA36D6C1306A26D6C130CA26D6C1318A26D6C1330A3027E1360A26E13C0A2 91381F8180A291380FC300A3EC07E6A2EC03FCA26E5AA36E5AD8FFFC0203B5FC15603829 7DA83F>I<B612F015FE3A03F8007F80ED1FE0ED07F0A2ED03F8A216FCA616F8A2ED07F0 A2ED1FE0ED7F8090B5EAFE0015F001F8C8FCB1B512E0A226297EA82D>80 D<9038FF80200003EBF060390F8078E0381E001D4813071403481301A200F81300A21560 7EA26C1400EA7F8013F013FF6C13F06C13FC6C7F6C7F00011480D8003F13C0010113E0EB 001FEC0FF01407140312C01401A37E15E07E6CEB03C07EB4EB078039E3E01F0038C1FFFC 38801FF01C297CA825>83 D<007FB7FCA29039007F007F007C151F00701507A200608100 E01680A2481501A5C791C7FCB3A790B67EA229297EA82E>I<B500E0EBFFFCA2D803F8C7 EA0300B3AB000115067F0000150E160C017E5C6D5C6D6C13E0903907F007C00101B5C7FC 9038001FF82E297EA833>I<00021310000613304813604813C0EA380100301380386003 00A3EAC006A300DE13F038FF07F8EB87FCA2EA7F83A2383F01F8381E00F0161477A922> 92 D<3803FF80000F13E0381F01F8383F80FC147EA280EA1F00C7FCA4EB3FFF3801FE3F EA0FE0EA1F80EA3F005A12FE150CA3145F007F139F393F831FF8391FFE0FF03903F807C0 1E1B7E9A21>97 D<EAFFC0A2120FADEBC1FE9038C7FF809038DE07E09038F003F09038E0 01F89038C000FCA2157EA2157FA8157EA315FCA29038E001F89038B003F090381C0FE039 0E07FF80390C01FC00202A7EA925>I<EB3FF03801FFFC3807E03E380FC07FEA1F80EA3F 00A2007E133E1400A212FEA7127EA2127F6C13031380001F1306380FC00C3807F0383801 FFF038003FC0181B7E9A1D>I<EC3FF0A21403ADEB3F833801FFF33807F03B380FC00F38 1F8007383F0003A2127EA312FEA8127EA27E1407EA1F80380FC01F3807E07B3901FFE3FF 38007F83202A7EA925>I<EB7F803801FFF03807E0F8380F807C48487E48133F80127E15 8012FEA2B6FCA248C8FCA4127EA2127F6CEB0180A2391F800300380FC0063803F01C3801 FFF838003FC0191B7E9A1E>I<EB07F0EB3FF8EBFC7C3801F8FEEA03F013E01207147C14 00A7B51280A23807E000B3A5EA7FFFA2172A7FA914>I<9038FF01E00003EBC7F8390F81 FC78381F00F8003EEB7C701500007E137EA6003E137CA26C5B380F81F0380BFFC0001890 C7FC0010C8FC1238A2123C381FFFF014FE6CEBFF806C14C0001F14E0383C000F007CEB03 F0127800F81301A4007CEB03E0A2003FEB0FC0390FC03F003807FFFE38007FE01D287E9A 21>I<EAFFC0A2120FAD14FE9038C3FF809038C60FC09038C807E0EBD00301F013F013E0 A213C0B139FFFC3FFFA2202A7EA925>I<120FEA1F8013C0123FA2121F1380EA0F00C7FC A8EAFFC0A2120FB3A5EAFFF8A20D2B7EAA13>I<EAFFC0A2120FADEC1FF8A2EC07801500 140E14185C5CEBC1C0EBC38013C7EBCFC013DFEBF7E0EBE3F013C3EBC1F8EBC0FC147C14 7E80EC1F80A2EC0FC015E039FFFC3FFCA21E2A7EA923>107 D<EAFFC0A2120FB3B3A2EA FFFCA20E2A7EA913>I<26FFC0FEEB3F80903AC3FF80FFE03B0FC60FC183F0903AC807E2 01F89039D003E40001F001FC7F01E05BA201C05BB13CFFFC3FFF0FFFC0A2321B7E9A37> I<38FFC0FE9038C3FF80390FC60FC09038C807E0EBD00301F013F013E0A213C0B139FFFC 3FFFA2201B7E9A25>I<EB3FC03801FFF83807E07E380F801F001F1480393F000FC0A200 7EEB07E0A300FE14F0A8007E14E0A26CEB0FC0A2391F801F80390FC03F003807E07E3801 FFF838003FC01C1B7E9A21>I<38FFC1FE9038C7FF80390FDE0FE09038F003F09038E001 F801C013FC140015FEA2157FA8157E15FEA215FC140101E013F89038F007F09038DC0FE0 9038C7FF809038C1FC0001C0C7FCAAEAFFFCA220277E9A25>I<38FF83E0EB8FF8380F8C 7CEB98FE13B013A0A2EBE07CEBC000B1EAFFFEA2171B7E9A1B>114 D<3803FC60381FFFE0EA3C03EA7801EA700000F01360A300FC1300B47EEA7FFC13FF6C13 C0000F13E0000313F0EA003FEB03F8EAC00014787EA27E14706C13E0EAFE0338E7FF8038 81FE00151B7E9A1A>I<1360A413E0A21201A212031207121FB512E0A23807E000AE1430 A73803F0603801F8C03800FF80EB3F0014267FA51A>I<39FFC03FF0A2000F1303B21407 A2140F0007131B3803E0333901FFE3FF38007F83201B7E9A25>I<3BFFF8FFF81FF8A23B 0FC00FC00180A22607E007EB030015E0A2D803F01406EC0FF0D9F80D130E0001ECF80C14 18D800FC5C15FC9039FE307C38017EEB7E30147090393F603E60153F9138C01FE0011F5C A26D486C5AA2EC00076D91C7FCA22D1B7F9A30>119 D<39FFF80FFEA2390FE001C0D807 F013800003EB03003801F806EBFC0E6C6C5AEB7E38EB3F30EB1FE05C6D7E130780497EEB 0DFCEB18FEEB387E497E01E013803901C01FC0EB800F39030007E048EB03F039FFE01FFF A2201B7F9A23>I<39FFF801FFA2390FC000707F000714606D13E0000314C07F0001EB01 80A23900FC0300A26D5AEB7E06EB7F0EEB3F0C148CEB1F98A2EB0FF0A36D5AA26D5AA26D 5AA249C7FCA25BEA3006EAFC0E130C5B1338EA7870EA3FE0EA1F8020277F9A23>I E /Fe 28 122 df<903803F02090381E0C6090383002E09038E003C03801C001EA038048 C7FC000E1480121E121C123C15005AA35AA41404A35C12705C6C5B00185B6C485AD80706 C7FCEA01F81B1E7A9C1E>67 D<48B5FC39003C03C090383800E0A21570A24913781538A2 15785BA4484813F0A315E03803800115C0140315803907000700140E5C5C000E13E0B512 801D1C7E9B1F>I<48B512F038003C00013813301520A35BA214081500495AA21430EBFF F03801C020A439038040801400A2EC0100EA07005C14021406000E133CB512FC1C1C7E9B 1C>I<48B512F038003C00013813301520A35BA214081500495AA21430EBFFF03801C020 A448485A91C7FCA348C8FCA45AEAFFF01C1C7E9B1B>I<3A01FFC3FF803A003C00780001 381370A4495BA449485AA390B5FC3901C00380A4484848C7FCA43807000EA448131E39FF E1FFC0211C7E9B1F>72 D<3801FFC038003C001338A45BA45BA4485AA438038002A31404 EA0700140C14181438000E13F0B5FC171C7E9B1A>76 D<D801FEEB01FED8003E14E0012E EB03C01505A21509014EEB0B801513152313470187EB4700A21587EC0107D80107130E14 021404A20002495AEB0388149014A000045C14C0A2000C1380001CEB007839FF8307FF27 1C7E9B25>I<3801FFFE39003C038090383801C0EC00E0A3EB7001A315C0EBE0031580EC 0700141C3801FFF001C0C7FCA3485AA448C8FCA45AEAFFE01B1C7E9B1C>80 D<EB0F84EB304CEB403CEB8018EA01005AA200061310A214001207A2EA03E013FC6CB4FC 38007F80EB07C01301A21300A21220A238600180A2EB03001302EAF004EACC18EA83E016 1E7D9C17>83 D<001FB512C0381C070138300E0000201480126012405B1280A200001400 5BA45BA45BA4485AA41203EA7FFE1A1C799B1E>I<397FF03FE0390F000700000E130614 04A3485BA4485BA4485BA4485BA35CA249C7FCEA60025B6C5AEA1830EA07C01B1D789B1F >I<EA01E3EA0717EA0C0F1218EA380E12301270A2EAE01CA41339A3EA6079EA319AEA1E 0C10127C9115>97 D<13F8EA0304120EEA1C0EEA181CEA30001270A25AA51304EA600813 10EA3060EA0F800F127C9113>99 D<13F8EA0704120CEA1802EA38041230EA7008EA7FF0 EAE000A5EA60041308EA30101360EA0F800F127C9113>101 D<EB03C0EB0670130CEB1C 601400A25BA53803FF8038007000A55BA5485AA5485AA390C7FCA25A12C612E65A127814 25819C0D>I<EB78C0EA01C5EA03031206000E1380120C121CA238380700A4130EA3EA18 1EEA0C7CEA079CEA001CA25BA2EAC030EAE070EAC1C0007FC7FC121A7E9113>I<EA0FC0 1201A2485AA448C7FCA4EA0E3E13C3380F0380120E121E121CA338380700A3130E007013 40A2131C1480EAE00C38600700121D7E9C15>I<EA01801203EA0100C7FCA7121C122612 47A2128EA2120E5AA35AA21271A31272A2123C091C7C9B0D>I<EA1F801203A2EA0700A4 120EA45AA45AA45AA412E2A312E412641238091D7D9C0B>108 D<391C1E078039266318 C0394683A0E0384703C0008E1380A2120EA2391C0701C0A3EC0380D8380E1388A2EC0708 151039701C032039300C01C01D127C9122>I<EA383EEA4CC3384D0380124E129E129C12 1CA238380700A3130E00701340A2131C1480EAE00C3860070012127C9117>I<13F8EA03 0CEA0E06487E1218123000701380A238E00700A3130EA25BEA60185BEA30E0EA0F801112 7C9115>I<EA1C3CEA2642EA4687EA4707EA8E061300120EA25AA45AA45A123010127C91 12>114 D<EA01F0EA0608120C131CEA1818EA1C00121F13C0EA0FF01207EA00781338EA 603012E012C0EA8060EA60C0EA1F000E127D9111>I<12035AA3120EA4EAFFE0EA1C00A3 5AA45AA4EAE080A2EAE100A2126612380B1A7C990E>I<381C0180EA2E03124EA2388E07 00A2121CA2EA380EA438301C80A3EA383C38184D00EA0F8611127C9116>I<EA1C06EA2E 0EEA4E06A2EA8E02A2121CA2EA3804A313081230A21310EA3820EA1840EA0F800F127C91 13>I<381C0180EA2E03124EA2388E0700A2121CA2EA380EA4EA301CA3EA383CEA1878EA 0FB8EA003813301370EAE0605BEA81800043C7FC123C111A7C9114>121 D E /Ff 46 125 df<13C01201A3EA07F0EA1FFC487EEA7DCF3871C780EAE1C313C7A238 F1C300EA79C0123FEA1FF0EA07FCEA01FE13CF13C73861C38012F1A212E13871C700EA79 DFEA3FFEEA1FF8EA07E0EA01C0A2120011207E9C16>36 D<13E01201EA0380EA0700120E 5AA25AA25AA35AA91270A37EA27EA27E7EEA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA0380A3EA0700A2120EA25A5A5A5A5A 0A217B9C16>I<EA0380A4EAE38EEAF39EEAFFFEEA3FF8EA0FE0A2EA3FF8EAFFFEEAF39E EAE38EEA0380A40F127D9516>I<1238127C127EA2123E120E121E121C127812F0126007 0B798416>44 D<B51280A311037E8D16>I<127012F8A312700505788416>I<EB01801303 A2EB0700A2130EA25BA25BA25BA25BA2485AA2485AA248C7FCA2120EA25AA25AA25AA25A A25A11207E9C16>I<127012F8A312701200A8127012F8A312700512789116>58 D<EB01801307131FEB3E0013F8485AEA07C0485A003EC7FC12FC12F012FC123EEA0F806C 7EEA01F06C7E133EEB1F801307130111157E9616>60 D<387FFFC0B512E0A2C8FCA5B512 E0A26C13C0130B7F9116>I<12C012F012FC123EEA0F806C7EEA01F06C7E133EEB1F8013 07131FEB3E0013F8485AEA07C0485A003EC7FC12FC12F012C011157E9616>I<3801F180 EA07FBEA0FFFEA1F0FEA3C07EA38031270A200F0C7FC5AA77E38700380A21238383C0700 EA1F0FEA0FFE6C5AEA01F011197E9816>67 D<EA7FF8EAFFFE6C7EEA1C0FEB0780EB03C0 1301A214E01300A8EB01C0A21303EB0780130F387FFF00485AEA7FF81319809816>I<38 7FFFC0B5FC7EEA1C01A490C7FCA2131CA2EA1FFCA3EA1C1CA290C7FC14E0A5EA7FFFB5FC 7E13197F9816>I<387FFFE0B5FC7EEA1C00A41400A2131CA2EA1FFCA3EA1C1CA290C7FC A6EA7F80487E6C5A13197F9816>I<EA7FFCEAFFFEEA7FFCEA0380B3EA7FFCEAFFFEEA7F FC0F197D9816>73 D<B47E7F5B001CC7FCAE144014E0A4B5FCA313197F9816>76 D<38FC07E0EAFE0FA2383A0B80EA3B1BA513BBEA39B3A413F3EA38E3A21303A538FE0FE0 A313197F9816>I<EA1FFC487E487EEA780F38F00780EAE003AEEAF007A238780F00EA7F FF6C5A6C5A11197E9816>79 D<EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480 130F381FFF005B13F8001CC7FCA7127F487E6CC7FC12197F9816>I<EA7FF0EAFFFC6C7E EA1C0FEB07801303A41307EB0F00EA1FFE5B7FEA1C0E7FA414101438A2387F03F0EAFF83 387F01E01519809816>82 D<387F07F038FF8FF8387F07F0381C01C0B0380E0380A23807 070013FF6C5AEA00F81519809816>85 D<387E03F038FF07F8387E03F0383800E0A4381C 01C0A3137113F9A213D9A2000C1380A3EA0DDD138DA338078F00A213071519809816>87 D<EA1FE0487E487EEA783CEA300E1200A2EA03FE121FEA3E0E127012E0A3EA783E387FFF E0EA3FE7EA0F8313127E9116>97 D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0 EA1C01EB00E0A6EB01C0EA1E03381F0780EBFF00EA1DFEEA0C7813197F9816>I<EA03F8 EA0FFCEA1FFEEA3C1EEA780CEA70005AA57EEA70071278EA3E0EEA1FFCEA0FF8EA03F010 127D9116>I<133FA31307A4EA03C7EA0FF748B4FCEA3C1F487EEA700712E0A6EA700F12 786C5A381FFFE0EA0FF7EA07C713197F9816>I<EA03F0EA0FFC487EEA3C0F487E387003 8012E0B5FCA300E0C7FCA2387003801278EA3E07381FFF00EA07FEEA01F811127E9116> I<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11 197F9816>I<3803E3C03807F7E0EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA1BE0 0038C7FC1218EA1FFC13FF481380387003C038E000E0A4387001C0EA7C07383FFF80380F FE00EA03F8131C7F9116>I<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF 8FE0139F138F13197F9816>I<1203EA0780A2EA0300C7FCA4EAFF80A31203ACEAFFFC13 FE13FC0F1A7C9916>I<127E12FE127E120EA4EB7FE0A3EB0F00131E5B5B5B120F7F13BC 131EEA0E0E7F1480387F87F0EAFFCFEA7F871419809816>107 D<EA7FC012FF127F1201 B3EA7FFFB512806C130011197E9816>I<38F9C38038FFEFC0EBFFE0EA3C78A2EA3870AA 38FE7CF8A31512809116>I<EAFC78EAFDFCB47EEA1F0FEA1E07121CAA38FF8FE0139F13 8F13127F9116>I<EA03E0EA0FF8487EEA3C1E487EEA700738E00380A5EAF00700701300 EA780FEA3C1EEA1FFC6C5AEA03E011127E9116>I<EAFC7CEAFDFEB5FC381F0780381E03 C0EA1C01EB00E0A6EB01C0EA1E03381F0780EBFF00EA1DFEEA1C7890C7FCA6B47EA3131B 7F9116>I<387F0FC038FF3FE0EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F 13127F9116>114 D<EA0FECEA3FFC127FEAF03CEAE01CA2EA7000EA7F80EA1FF0EA07F8 EA003CEA600E12E012F0EAF81EEAFFFC13F8EAC7E00F127D9116>I<12035AA4EA7FFFB5 FCA20007C7FCA75BEB0380A3EB8700EA03FE6C5A6C5A11177F9616>I<EAFC3FA3EA1C07 AB131F381FFFE0EA0FF7EA07C713127F9116>I<38FF1FE0A338380380A4EA39F3A20019 130013B3A3EA1DB71317EA1F1FEA0F1EEA0E0E13127F9116>119 D<387F1FC0133F131F380F1E006C5AEA03B813F012016C5A12017FEA03B8EA073C131CEA 0E0E387F1FC038FF3FE0387F1FC013127F9116>I<12E0B3AE0320779C16>124 D E /Fg 45 122 df<9038FC1F800001133F0003137F390700E000380E01C0A738FFE1FC A2380E01C0B0191D809C18>11 D<EB01C0EA01F112033807F00090C7FC120EA738FFF1C0 A2EA0E01B0121E809D16>I<12E0A312601240A312C003087C9C0C>39 D<EA01C0EA0380EA0700120EA25AA25AA35AA45AAE1270A47EA37EA27EA27EEA0380EA01 C00A2A7D9E10>I<12E012707E7EA27EA27EA3EA0380A4EA01C0AEEA0380A4EA0700A312 0EA25AA25A5A5A0A2A7E9E10>I<12E0A312601240A312C003087C820C>44 D<EAFFE0A20B0280890E>I<12E0A303037C820C>I<EA03C0EA0FF0EA1FF8EA3C3CEA381C EA700EA3EAE007ADEA700EA3EA381CEA3C3CEA1FF8EA0FF0EA07E0101D7E9B15>48 D<EA07C0EA1FF0EA3878EA701CEA601EEAE00EEAC00F124013071200A2130F130E131E13 1C133C137813F0EA01E013C0EA0380EA0700120E5A5A5AB5FCA2101C7E9B15>50 D<131C133EA2132E1367A2EBE78013C713C300017F1383138100037F1301486C7EA21206 000E1378380FFFF8A2381C003CA2121800387FA248131F80126000E0EB0780191D7F9C1C >65 D<EB3FC03801FFF8EA03C03807801848C7FC121E5AA25AA35AA91278A37EA27E6C13 08380780183803C0783801FFF038003F80151F7D9D1B>67 D<EAFFFC13FF38F00F80EB03 E01301EB00F014781438143CA2141C141EA8143CA3147814F0A2EB03E0EB0FC0B5120013 FC171D7C9C1E>I<B512C0A200F0C7FCABB51280A200F0C7FCACB512C0A2121D7C9C19>I< B51280A200F0C7FCABB5FCA200F0C7FCAE111D7C9C18>I<12F0B3AB041D7C9C0C>73 D<00FCEB07E0A300EE130DA300E71319A3EB803900E31331EBC071A200E11361A2EBE0E1 A200E013C113F1EB7181A3EB3B01A3131EA313001B1D7C9C24>77 D<EAFFFC13FF38F00F80EB03C0EB01E0EB00F0A6EB01E01303EB0FC0B51280EBFE0000F0 C7FCAD141D7C9C1B>80 D<EAFFF813FF38F00F80EB03C0EB01E0EB00F0A5EB01E01303EB 0FC0B51280140013F8EAF03C131C131E7FA2EB0780A2EB03C0A2EB01E0EB00F0A2147815 1D7C9C1B>82 D<EA03F8EA0FFEEA1C0F487E487E0060C7FC12E0A47E1278127FEA3FE0EA 1FFCEA07FEEA01FF38001F801307EB03C0A21301A400C01380EAE00338F00700EA7C0EEA 1FFCEA07F0121F7E9D17>I<B61280A2D8001EC7FCB3A9191D7F9C1C>I<00F01370B3A500 7813E0A2383C01C0381E0380EA0F073807FE00EA01F8141E7C9C1D>I<EA0FC0EA3FF0EA 7FF8EA7038EA401C1200A213FC120F123FEA781C12E0A3EAF07CEA7FFC13DCEA3F1C0E12 7E9114>97 D<12E0ABEAE3E0EAEFF8EAFFFCEAF83EEAE01E130E1307A6130EEAF01EEAF8 3CEAFFF8EAEFF0EAE3E0101D7D9C15>I<EA03F0EA0FFCEA1FFEEA3C0EEA7802EA70005A A61270EA7802EA3C0EEA1FFEEA0FFCEA03F00F127F9112>I<1307ABEA07C7EA1FF7EA3F FFEA3C1FEA7807127012E0A61270EA780FEA3C1FEA3FFFEA1FF7EA07C7101D7F9C15>I< EA07E0EA0FF0EA3FF8EA3C3CEA700C130EEAFFFEA3EAE000A31270EA7802EA3C0EEA1FFE EA0FFCEA03F00F127F9112>I<13FC12011203EA0700120EA7EAFFE0A2EA0E00B00E1D80 9C0D>I<3807C3C0EA0FFF5A38383800487EA56C5AEA3FF05BEA77C00070C7FCA2EA3FFC 13FF481380EA700738E001C0A3EAF003387C0F80383FFF006C5AEA07F8121B7F9115>I< 12E0ABEAE3E0EAEFF0EAFFF8EAF83CEAF01C12E0AD0E1D7D9C15>I<12F0A41200A71270 B2041D7E9C0A>I<12E0AB133C137813F0EAE1E0EAE3C0EAE780EAEF00B4FC138012FBEA F9C0EAF1E012E013F013781338133C131E0F1D7D9C14>107 D<12E0B3AB031D7D9C0A>I< 38E3F03F39EFF8FF80D8FFFD13C039F81F81E038F00F00EAE00EAD1B127D9124>I<EAE3 E0EAEFF0EAFFF8EAF83CEAF01C12E0AD0E127D9115>I<EA03F0EA0FFC487EEA3C0F3878 0780EA700338E001C0A5EAF00300701380EA7807383C0F00EA1FFE6C5AEA03F012127F91 15>I<EAE3E0EAEFF8EAFFFCEAF83EEAE01E130E1307A5130F130EEAF01EEAF87CEAFFF8 EAEFF0EAE3E0EAE000A8101A7D9115>I<EAE38012E712EFEAFC005A5AA25AAB09127D91 0E>114 D<EA1FC0EA3FF0127FEAF030EAE000A27E127FEA3FC0EA1FE0EA01F0EA0038A2 1280EAF078EAFFF0EA7FE0EA1FC00D127F9110>I<121CA6EAFFE0A2EA1C00AC1320EA1F F0120FEA07C00C187F970F>I<EAE01CAE137CEAFFFCEA7FDCEA3F1C0E127D9115>I<EAE0 07A212F0EA700EA2EA381CA3EA1C38A3EA0E70A2EA0660120713E0EA03C0A210127F9113 >I<39E03E0380A3D870371300EB7707A213733838E38EA33818E18C381CC1CC001D13DC A2380D80D8000F13F8A20007137019127F911C>I<3870038038780700EA3C0EEA1C1C12 0E6C5AEA03F06C5A5B7F487EEA0738EA0618EA0E1C487E487E3870038000F013C0121280 9113>I<EAE007A2EA700EA21278EA381CA2121C1338120CEA0E3013701206EA07601203 13C01201A21380A2EA0300A25A12FE5A5A101A7F9113>I E /Fh 69 122 df<EB7E1F3901C1B180390303E3C0000713C3000EEBC180903801C000A6B512FC 380E01C0B0387F87FC1A1D809C18>11 D<137E3801C180EA0301380703C0120EEB018090 C7FCA5B512C0EA0E01B0387F87F8151D809C17>I<EB7FC0EA01C1EA03031207EA0E01A7 B5FCEA0E01B0387FCFF8151D809C17>I<90383F07E03901C09C18380380F0D80701133C 000E13E00100131892C7FCA5B612FC390E00E01CB03A7FC7FCFF80211D809C23>I<1260 12F0A71260AD1200A5126012F0A21260041E7C9D0C>33 D<EA6060EAF0F0EAF8F8EA6868 EA0808A3EA1010A2EA2020EA4040EA80800D0C7F9C15>I<000F14C0EA18803930600380 3970380700386027FB38E010065CA25CA25C5CEA602000705B38304180EA1881390F0303 C03900060620EC0C1090380C1C08EB1818EC380413301360A213C0A2EA01803903001808 141C0006EB0C1048EB06200004EB03C01E217E9E23>37 D<126012F012F812681208A312 10A2122012401280050C7C9C0C>39 D<1380EA0100120212065AA25AA25AA35AA412E0AC 1260A47EA37EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307EA27EA27EA37E A41380AC1300A41206A35AA25AA25A12205A5A092A7E9E10>I<126012F0A212701210A4 1220A212401280040C7C830C>44 D<EAFFE0A20B0280890E>I<126012F0A2126004047C 830C>I<5A1207123F12C71207B3A5EAFFF80D1C7C9B15>49 D<EA07C0EA1830EA201CEA 400C130EEAF00F12F81307A21270EA000F130EA2131CA213381370136013C0EA0180EA03 00EA0601120C1218EA1002EA3FFE127F12FF101C7E9B15>I<EA07E0EA1830EA201CA2EA 781E130E131E1238EA001CA2131813301360EA07C0EA0030131CA2130E130FA2127012F8 A3EAF00EEA401C1220EA1830EA07C0101D7E9B15>I<130CA2131C133CA2135C13DC139C EA011C120312021204120C1208121012301220124012C0B512C038001C00A73801FFC012 1C7F9B15>I<EA300CEA3FF813F013C0EA2000A6EA23E0EA2C30EA3018131CEA200E1200 130FA3126012F0A3EA800EEA401E131CEA2038EA1870EA07C0101D7E9B15>I<13F0EA03 0CEA0404EA0C0EEA181E1230130CEA7000A21260EAE3E0EAE430EAE818EAF00C130EEAE0 061307A51260A2EA7006EA300E130CEA1818EA0C30EA03E0101D7E9B15>I<EA03C0EA0C 30EA1818EA300C1270EA600EEAE006A21307A51260EA700F1230EA1817EA0C27EA07C7EA 0006A2130EEA300C127813181270EA2030EA10C0EA0F80101D7E9B15>57 D<126012F0A212601200AA126012F0A2126004127C910C>I<126012F0A212601200AA12 6012F0A212701210A41220A212401280041A7C910C>I<EA0FE0EA3038EA401CEAE00E12 F0A3EA000C131C1330136013C0138012011300A6C7FCA51203EA0780A2EA03000F1D7E9C 14>63 D<1306A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80F0A338010078A2EB FFF83802003CA3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F>65 D<B512C0380F00788080140E140FA4140E141E5C14F8EBFFF0EB003C8080801580A5EC0F 00A2141E1478B512E0191C7F9B1D>I<90381F8080EBE0613801801938070007000E1303 5A14015A00781300A2127000F01400A8007014801278A212386CEB0100A26C13026C5B38 0180083800E030EB1FC0191E7E9C1E>I<B512C0380F00F0143C140E80A2EC038015C014 01A215E0A815C0A21403158014071500140E5C1470B512C01B1C7E9B20>I<B512FC380F 003C140C1404A214061402A213011400A35B13FF13037FA3140113001402A31406A2140C 143CB512FC181C7E9B1C>I<B512F8380F007814181408A2140C1404A213011400A35B13 FF13037FA490C7FCA8EAFFF8161C7E9B1B>I<90381F8080EBE061380180193807000700 0E13035A14015A00781300A2127000F01400A6ECFFF0EC0F80007013071278A212387EA2 7E6C130B380180113800E06090381F80001C1E7E9C21>I<39FFF0FFF0390F000F00AC90 B5FCEB000FAD39FFF0FFF01C1C7F9B1F>I<EAFFF0EA0F00B3A8EAFFF00C1C7F9B0F>I<39 FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130FEB17801327EB43C0 EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F9B20>75 D<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB7808A3EB3C10A3 EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>77 D<B4EB1FF0390F8003809038C00100120BEA09E0EA08F0A21378133C133E131E130F1481 1307EB03C1EB01E114F113001479147D143D141FA2808080121CB46C7E1C1C7F9B1F>I< EB3F80EBE0E03803803848487E000E7F487F003C148000381303007814C0A20070130100 F014E0A8007014C000781303A200381480003C1307001C14006C130E6C5B6C6C5A3800E0 E0EB3F801B1E7E9C20>I<B51280380F00E01478143C141C141EA5141C143C147814E0EB FF8090C7FCACEAFFF0171C7E9B1C>I<B5FC380F01E0EB007880141C141EA4141C143C5C EB01E001FFC7FCEB01E0EB0070147880A61510A2141CA239FFF00E20C7EA03C01C1D7E9B 1F>82 D<3807E080EA1C19EA30051303EA600112E01300A36C13007E127CEA7FC0EA3FF8 EA1FFEEA07FFC61380130FEB07C0130313011280A300C01380A238E00300EAD002EACC0C EA83F8121E7E9C17>I<007FB512C038700F010060130000401440A200C014201280A300 001400B1497E3803FFFC1B1C7F9B1E>I<39FFF01FF0390F000380EC0100B3A26C130213 8000035BEA01C03800E018EB7060EB0F801C1D7F9B1F>I<3AFFE1FFC0FF3A1F003E003C 001E013C13186C6D1310A32607801F1320A33A03C0278040A33A01E043C080A33A00F081 E100A39038F900F3017913F2A2017E137E013E137CA2013C133C011C1338A20118131801 081310281D7F9B2B>87 D<39FFF003FC390F8001E00007EB00C06D13800003EB01006D5A 000113026C6C5A13F8EB7808EB7C18EB3C10EB3E20131F6D5A14C06D5AABEB7FF81E1C80 9B1F>89 D<EA0808EA1010EA2020EA4040A2EA8080A3EAB0B0EAF8F8EA7878EA30300D0C 7A9C15>92 D<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E013 40A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E018038 1C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<EA03 F8EA0C0CEA181E1230EA700CEA600012E0A61260EA70021230EA1804EA0C18EA03E00F12 7F9112>I<EB1F801303AAEA03F3EA0E0BEA1807EA30031270126012E0A6126012701230 EA1807EA0E1B3803E3F0141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612 E0EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>I<13F8EA018C EA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C0D>I<EB03803807C4C0EA 1C783838388038301800EA701CA4EA3018EA38386C5AEA27C00020C7FCA21230EA3FF86C B4FC1480EA2003386001C0EAC000A33860018038300300EA1C0EEA07F8121C7F9215>I< 12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D7F9C17>I<1218123CA212 18C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA00C01300A7EA07E01200 B3A21260EAF0C012F1EA6180EA3E000B25839C0D>I<12FC121CAAEB0FE0EB0780EB0600 5B13105B5B13E0121DEA1E70EA1C781338133C131C7F130F148038FF9FE0131D7F9C16> I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C838838391D019018001EEBE0 1C001C13C0AD3AFF8FF8FF8021127F9124>I<EAFC7CEA1C87EA1D03001E1380121CAD38 FF9FF014127F9117>I<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A6006013 80EA700300301300EA1806EA0E1CEA03F012127F9115>I<EAFC7CEA1D87381E0180001C 13C0EB00E0A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F91 17>I<3803E080EA0E19EA1805EA3807EA7003A212E0A61270A2EA38071218EA0E1BEA03 E3EA0003A7EB1FF0141A7F9116>I<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D12 7F9110>I<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA 8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<1204A4120CA2121C123CEAFFE0 EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E 1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2 EA0388A213C8EA01D0A2EA00E0A3134013127F9116>I<39FF3FC7E0393C0703C0001CEB 01801500130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB8030 000013201B127F911E>I<38FF0FE0381E0700EA1C06EA0E046C5AEA039013B0EA01E012 007F12011338EA021C1204EA0C0E487E003C138038FE1FF014127F9116>I<38FF07E038 3C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A2 5BA212F000F1C7FC12F312661238131A7F9116>I E /Fi 14 118 df<EC0FF0A24A7EA34A7E143EA2EC7E7EA3ECFC7F81A201018014F8151F01038014F015 0F010780A214E0010F6D7EA214C0011F6D7EA21480013F6D7EA349C77EA301FE147FA348 B71280A34816C0A201F8C7121F484815E0160FA2484815F01607A2484815F81603A24848 15FC1601A248C813FE1600A200FE16FF303C7EBB35>65 D<B67E15F015FE8116C026FE00 017F9138003FF0ED0FF86F7E15036F7E6F7E82EE3F80A2EE1FC0A2EE0FE0A2160717F0A3 160317F8ADEE07F0A4EE0FE0A3EE1FC0A2EE3F80167FEEFF005E1501ED07FC4B5AED3FF0 4AB45AB75A93C7FC5D15F815802D3C79BB39>68 D<B812FEA6C7D80FE0C7FCB3B3B22F3C 7DBB36>84 D<12FEB3A6EB01FCEB1FFF017F13C090B512E0B612F0EBF03F9038C00FF890 380003FC5AEC01FE1400A3157FAA15FEA2140115FC6C130390388007F8EBC00F9038F03F F090B512E04814C06D138090381FFE00EB03F8203C7BBB29>98 D<EB0FF0EB3FFE90B5FC 481480000714C09038F81FE0390FF00FF0381FE007393FC003F8EB8001EA7F0015FC90B5 FCA2B6FCA348C8FCA5127E127FA26C7EA26C7E6D13086C6C13783907FC03F86CB5FC7E6C 14F0013F1380903807FC001E247EA323>101 D<903801FF8013075B5B5BEB7F0001FE13 005B485AA21203AEB512F8A5D803F8C7FCB3AD193C7FBB18>I<90390FE003E090387FFC 3F9039FFFEFFF0000390B5FC5A9039F83FE000380FE00F48486C7EA2EB8003003F80A600 1F5CEBC007A26C6C485A3907F83FC090B5FC485C4AC7FC486C5A381E0FE090C9FC121FA2 7F90B5FC15F06C14FC816C80001F15804815C0EB8000007EC7121FED0FE0481407A5007E EC0FC0007F141FD83FC0EB7F803A1FF803FF006CB55A6C5C000114F06C6C13C0D90FFEC7 FC24367EA328>I<12FEB3A6EB01FE90380FFF80013F13E04913F090B5FC39FFF81FF8EB E0079038C003FCEB80011300A35AB3A61E3C7BBB29>I<12FEA71200AD12FEB3B207387B B712>I<38FE01FE90380FFF80013F13E04913F090B5FC39FFF81FF8EBE0079038C003FC EB80011300A35AB3A61E247BA329>110 D<EB07FCEB1FFF017F13C048B512F048803907 FC07FC390FF001FE48486C7E497F4848EB3F8090C7121F4815C0A2007E140F00FE15E0A8 007FEC1FC0A36C6CEB3F80A26C6CEB7F006D5B6C6C485A3907FC07FC6CB55A6C5C6C6C13 C06D5BD907FCC7FC23247EA328>I<00FE13F01307131F133F137F13FFB5120013F85B13 C0A25B90C7FCA25AB3A414247BA31B>114 D<EA03F8AAB512FEA5D803F8C7FCB3A55C6D 5A9038FE0F806CB5FCA26CEBFE00EB7FF8EB3FC0192E7FAD1D>116 D<00FEEB01FCB3A81403A214076C130FEB807F6CB5FC14FD6C13F16C13C13807FC011E24 7BA329>I E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%PaperSize: a4 %%BeginPaperSize: a4 a4 %%EndPaperSize %%EndSetup %%Page: 1 1 1 0 bop 0 361 a Fi(Th)n(e)26 b(Art)g(of)g(De)o(bugging)p 0 418 1950 12 v 14 475 a Fh(Mic)o(h)o(ael)13 b(Ch)o(ast)o(ain)0 628 y Fg(Th)o(e)k(following)e(do)q(cu)o(ment)o(a)o(t)o(ion)g(i)q(s)g (excerpt)o(e)q(d)k(f)q(rom)12 b(M)o(erc)18 b(2.0's)c Ff(hacker.txt)g Fg(\014le.)24 b(It)16 b(w)o(as)f(wr)q(it)n(t)o(en)j(b)o (y)e(F)o(urey)g(of)g(MERC)0 684 y(Ind)o(ustr)q(ie)q(s)e(and)g(i)q(s)e (includ)o(e)q(d)k(h)o(ere)e(wit)n(h)g(hi)q(s)e(p)q(ermi)q(ss)q(ion.)j (I've)e(package)q(d)h(it)f(wit)n(h)h(Circle)f(\(very)h(slight)n(ly)f (ch)o(ange)q(d)i(in)e(a)g(couple)0 741 y(of)f(place)q(s,)h(su)o(ch)h (as)e(sp)q(eci\014c)i(\014lename)q(s\))d(b)q(eca)n(us)q(e)j(it)f (o\013ers)g(go)q(o)q(d)f(advice)i(and)f(ins)q(ight)g(int)o(o)g(t)n(h)o (e)g(a)o(rt)g(and)g(science)h(of)e(soft)o(w)o(a)o(re)0 798 y(engineer)q(ing.)28 b(Mo)o(re)16 b(info)o(rma)o(t)o(ion)d(a)o(b)q (ou)o(t)18 b(CircleMUD,)e(including)i(up-t)o(o-d)o(a)o(t)o(e)g(vers)q (ions)f(of)f(t)n(hi)q(s)g(do)q(cu)o(ment)o(a)o(t)o(ion)g(in)h(ASCI)q(I) 0 855 y(and)j(P)o(ost)o(scr)q(ipt,)g(can)g(b)q(e)g(fou)o(nd)g(a)o(t)f (t)n(h)o(e)h Fe(Cir)n(cleMUD)f(Home)h(Page)f Ff(<http://www.circlem)o (ud.or)o(g/>)d Fg(o)o(r)j Fe(FTP)g(site)0 912 y Ff(<ftp://ftp.circle)o (mud.o)o(rg/pu)o(b/Cir)o(cleMU)o(D/>)p Fg(.)0 1081 y Fd(1)66 b(\\I'm)22 b(ru)o(nnin)o(g)e(a)i(Mud)f(so)h(I)g(can)g(le)q(ar)q (n)f(C)g(programmin)o(g!")0 1200 y Fh(Y)m(ea)o(h,)14 b(r)q(igh)o(t.)0 1278 y(Th)o(e)j(purp)q(os)q(e)h(of)e(t)n(hi)q(s)g(do)q (cu)o(m)o(en)o(t)g(i)q(s)g(t)o(o)h(record)h(som)o(e)e(of)g(our)g(kno)o (wle)q(dge,)h(exp)q(er)q(ience)h(an)o(d)e(philoso)o(ph)o(y)m(.)25 b(No)16 b(m)o(a)o(t)n(t)o(er)0 1335 y(wh)o(a)o(t)e(y)o(our)f(lev)o(el,) g(w)o(e)h(h)o(o)o(p)q(e)g(t)n(h)o(a)o(t)g(t)n(hi)q(s)g(do)q(cu)o(m)o (en)o(t)f(will)g(h)o(elp)h(y)o(ou)f(b)q(ecom)o(e)g(a)h(b)q(et)n(t)o(er) h(soft)o(w)o(are)f(en)o(gin)o(eer.)0 1413 y(Rem)o(em)n(b)q(er)h(t)n(h)o (a)o(t)h(en)o(gin)o(eer)q(in)o(g)i(i)q(s)e(w)o(or)o(k,)h(an)o(d)g Fe(no)j Fh(do)q(cu)o(m)o(en)o(t)c(will)f(su)n(bst)o(it)o(u)o(t)o(e)k (for)d(y)o(our)h(o)o(wn)f(t)n(hinkin)o(g,)h(lear)q(nin)o(g)f(an)o(d)0 1470 y(exp)q(er)q(im)o(en)o(t)o(a)o(t)o(ion.)0 1639 y Fd(2)66 b(Ho)n(w)21 b(t)o(o)h(Le)q(ar)q(n)f(in)g(t)m(h)n(e)h(First)f (Place)62 1754 y Fc(\017)g Fh(Play)13 b(wit)n(h)h(som)o(et)n(hin)o(g.) 62 1844 y Fc(\017)21 b Fh(Read)14 b(t)n(h)o(e)h(do)q(cu)o(m)o(en)o(t)o (a)o(t)o(ion)d(on)i(it.)62 1934 y Fc(\017)21 b Fh(Play)13 b(wit)n(h)h(it)f(som)o(e)g(more.)62 2024 y Fc(\017)21 b Fh(Read)14 b(do)q(cu)o(m)o(en)o(t)o(a)o(t)o(ion)e(again.)62 2114 y Fc(\017)21 b Fh(Play)13 b(wit)n(h)h(it)f(som)o(e)g(more.)62 2204 y Fc(\017)21 b Fh(Read)14 b(do)q(cu)o(m)o(en)o(t)o(a)o(t)o(ion)e (again.)62 2294 y Fc(\017)21 b Fh(Play)13 b(wit)n(h)h(it)f(som)o(e)g (more.)62 2384 y Fc(\017)21 b Fh(Read)14 b(do)q(cu)o(m)o(en)o(t)o(a)o (t)o(ion)e(again.)62 2474 y Fc(\017)21 b Fh(Get)14 b(t)n(h)o(e)g(id)o (ea?)0 2594 y(Th)o(e)g(id)o(ea)g(i)q(s)f(t)n(h)o(a)o(t)h(y)o(our)g(min) o(d)e(can)i(accept)h(only)d(so)i(m)n(u)o(c)o(h)f(\\n)o(ew)h(d)o(a)o(t)o (a")f(in)h(a)f(s)q(in)o(gle)g(s)q(e)q(ss)q(ion.)19 b(Playin)o(g)13 b(wit)n(h)h(som)o(et)n(hin)o(g)0 2650 y(do)q(e)q(sn't)g(in)o(tro)q(d)o (u)o(ce)h(v)o(ery)f(m)n(u)o(c)o(h)g(n)o(ew)g(d)o(a)o(t)o(a,)g(bu)o(t)h (it)e(do)q(e)q(s)i(transform)e(d)o(a)o(t)o(a)h(in)g(y)o(our)g(h)o(ead)g (f)q(rom)e(t)n(h)o(e)j(\\n)o(ew")f(ca)o(t)o(egory)h(t)o(o)0 2707 y(t)n(h)o(e)g(\\f)q(amil)o(iar")c(ca)o(t)o(egory)m(.)18 b(Readin)o(g)c(do)q(cu)o(m)o(en)o(t)o(a)o(t)o(ion)f(do)q(e)q(sn't)h(m)o (ak)o(e)e(an)o(yt)n(hin)o(g)i(\\f)q(amili)o(ar,")d(bu)o(t)j(it)g (re\014lls)g(y)o(our)g(\\n)o(ew")0 2764 y(h)o(o)o(p)o(p)q(er.)p eop %%Page: 2 2 2 1 bop 0 178 1950 3 v 0 162 a Fb(3.)37 b(Bas)q(ic)15 b(Unix)g(T)l(o)q(o)o(ls)1500 b Fh(2)0 343 y(Most)16 b(p)q(eo)o(ple,)e (if)g(t)n(h)o(ey)i(ev)o(en)g(read)g(do)q(cu)o(m)o(en)o(t)o(a)o(t)o(ion) e(in)g(t)n(h)o(e)i(\014rst)g(place,)f(n)o(ev)o(er)h(ret)o(ur)q(n)g(t)o (o)f(it.)22 b(Th)o(ey)15 b(com)o(e)f(t)o(o)i(a)e(cert)o(ain)0 400 y(minim)m(u)o(m)g(lev)o(el)k(of)f(pro\014ciency)i(an)o(d)e(t)n(h)o (en)i(n)o(ev)o(er)g(lear)q(n)f(an)o(y)f(more.)29 b(Bu)o(t)18 b(mo)q(d)o(er)q(n)g(o)o(p)q(era)o(t)o(in)o(g)f(syst)o(ems,)h(lan)o (guage)q(s,)0 457 y(n)o(et)o(w)o(or)o(ks,)c(an)o(d)g(ev)o(en)g(ap)o (plica)o(t)o(ions)e(s)q(imply)f(cannot)i(b)q(e)h(lear)q(n)o(e)q(d)h(in) e(a)g(s)q(in)o(gle)h(s)q(e)q(ss)q(ion.)19 b(Y)m(ou)13 b(h)o(a)o(v)o(e)g(t)o(o)h(w)o(or)o(k)g(t)n(hrough)g(t)n(h)o(e)0 513 y(t)o(w)o(o-st)o(ep)g(lear)q(nin)o(g)g(cycle)h Fe(many)j Fh(t)o(im)o(e)q(s)12 b(t)o(o)j(m)o(ast)o(er)e(it.)0 682 y Fd(3)66 b(Bas)q(ic)21 b(Unix)g(T)-6 b(o)r(o)o(ls)0 797 y Fb(m)o(an)104 870 y Fh(giv)o(e)q(s)14 b(y)o(ou)f(onlin)o(e)g(m)o (an)n(ual)f(page)q(s)0 960 y Fb(grep)104 1034 y Fh(st)o(an)o(ds)i(for)g (\\global)e(regular)i(expre)q(ss)q(ion)h(pr)q(in)o(t;")d(s)q(earc)o(h)o (e)q(s)17 b(for)c(str)q(in)o(gs)i(in)e(t)o(ext)h(\014le)q(s)0 1124 y Fb(vi,)i(em)o(acs,)g(jo)o(v)o(e)104 1197 y Fh(us)q(e)f(wh)o(a)o (t)o(ev)o(er)h(e)q(dit)o(or)f(\015oa)o(t)o(s)g(y)o(our)g(b)q(oa)o(t,)f (bu)o(t)i(lear)q(n)f(t)n(h)o(e)g(h)o(ell)f(ou)o(t)h(of)g(it;)f(y)o(ou)g (sh)o(ould)h(kno)o(w)f Fe(every)19 b Fh(comm)o(an)o(d)11 b(in)104 1254 y(y)o(our)i(e)q(dit)o(or)0 1344 y Fb(ct)o(ags)104 1417 y Fh(m)o(ak)o(e)q(s)g(\\t)o(ags")g(for)g(y)o(our)h(e)q(dit)o(or)h (allo)o(ws)d(y)o(ou)i(t)o(o)g(got)o(o)g(fu)o(nct)o(ions)g(b)o(y)f(n)o (am)o(e)g(in)g(an)o(y)h(source)h(\014le)0 1507 y Fa(>)p Ff(,)22 b Fa(>>)p Ff(,)g Fa(<)p Ff(,)g(|)104 1581 y Fh(inpu)o(t)12 b(an)o(d)h(ou)o(t)o(pu)o(t)g(re)q(direct)o(ion)g(a)o(t)g(t)n(h)o(e)g (comm)o(an)o(d)c(lin)o(e;)j(get)h(som)o(eon)o(e)e(t)o(o)i(sh)o(o)o(w)f (y)o(ou,)g(or)h(dig)e(it)h(ou)o(t)h(of)f(\\m)o(an)e(csh")0 1700 y(Th)o(e)q(s)q(e)16 b(are)f(t)n(h)o(e)h(bas)q(ic)e(d)o(ay-in)g(d)o (ay-ou)o(t)i(d)o(ev)o(elo)o(pm)o(en)o(t)d(t)o(o)q(ols.)21 b(Dev)o(elo)o(pin)o(g)14 b(wit)n(h)o(ou)o(t)h(kno)o(win)o(g)f(h)o(o)o (w)h(t)o(o)g(us)q(e)h Fe(al)r(l)i Fh(of)c(t)n(h)o(e)q(s)q(e)0 1757 y(w)o(ell)f(i)q(s)g(lik)o(e)h(dr)q(ivin)o(g)f(a)g(car)i(wit)n(h)o (ou)o(t)f(kno)o(win)o(g)f(h)o(o)o(w)g(t)o(o)i(c)o(h)o(an)o(ge)f(gears.) 0 1926 y Fd(4)66 b(De)o(buggin)o(g:)28 b(Th)n(eory)0 2046 y Fh(De)o(buggin)o(g)19 b(i)q(s)f(a)g(science.)34 b(Y)m(ou)18 b(form)n(ula)o(t)o(e)f(a)h(h)o(yp)q(ot)n(h)o(e)q(s)q(i)q (s,)i(m)o(ak)o(e)d(pre)q(dict)o(ions)i(bas)q(e)q(d)g(on)g(t)n(h)o(e)g (h)o(yp)q(ot)n(h)o(e)q(s)q(i)q(s,)h(ru)o(n)f(t)n(h)o(e)0 2103 y(program)12 b(an)o(d)i(pro)o(vid)o(e)g(it)f(exp)q(er)q(im)o(en)o (t)o(al)f(inpu)o(t,)i(obs)q(erv)o(e)h(it)o(s)g(b)q(e)o(h)o(a)o(vior,)d (an)o(d)i(con\014rm)f(or)h(refu)o(t)o(e)h(t)n(h)o(e)f(h)o(yp)q(ot)n(h)o (e)q(s)q(i)q(s.)0 2181 y(A)i(go)q(o)q(d)f(h)o(yp)q(ot)n(h)o(e)q(s)q(i)q (s)h(i)q(s)f(on)o(e)h(whic)o(h)f(m)o(ak)o(e)q(s)g(surpr)q(i)q(s)q(in)o (g)g(pre)q(dict)o(ions)h(whic)o(h)g(t)n(h)o(en)g(com)o(e)f(true;)i(pre) q(dict)o(ions)f(t)n(h)o(a)o(t)g(ot)n(h)o(er)0 2238 y(h)o(yp)q(ot)n(h)o (e)q(s)q(e)q(s)g(don't)d(m)o(ak)o(e.)0 2316 y(Th)o(e)i(\014rst)g(st)o (ep)h(in)e(d)o(e)o(buggin)o(g)h(i)q(s)e(not)i(t)o(o)g(wr)q(it)o(e)f (bugs)g(in)g(t)n(h)o(e)i(\014rst)f(place.)20 b(Thi)q(s)14 b(sou)o(n)o(ds)h(ob)o(vious,)e(bu)o(t)i(sadly)m(,)f(i)q(s)g(all)f(t)o (o)q(o)0 2373 y(oft)o(en)h(ignore)q(d.)0 2451 y(If)h(y)o(ou)f(build)g (a)h(program,)e(an)o(d)i(y)o(ou)f(get)h Fe(any)20 b Fh(errors)c(or)f Fe(any)k Fh(w)o(ar)q(nin)o(gs,)c(y)o(ou)f(sh)o(ould)h(\014x)g(t)n(h)o (em)f(b)q(efore)h(con)o(t)o(in)n(uin)o(g.)21 b(C)0 2508 y(w)o(as)c(d)o(e)q(s)q(ign)o(e)q(d)h(so)f(t)n(h)o(a)o(t)g(m)o(an)o(y)e (buggy)i(w)o(ays)f(of)h(wr)q(it)o(in)o(g)f(co)q(d)o(e)i(are)g(legal,)e (bu)o(t)i(will)d(draw)i(w)o(ar)q(nin)o(gs)g(f)q(rom)e(a)h(suit)o(a)o (bly)0 2564 y(sm)o(art)f(compiler)f(\(su)o(c)o(h)i(as)g(\\gcc")g(wit)n (h)f(t)n(h)o(e)i Ff(-Wall)d Fh(\015ag)h(en)o(a)o(ble)q(d\).)24 b(It)15 b(t)o(ak)o(e)q(s)h(only)f(min)n(u)o(t)o(e)q(s)h(t)o(o)g(c)o(h)o (ec)o(k)g(y)o(our)f(w)o(ar)q(nin)o(gs)0 2621 y(an)o(d)f(t)o(o)g(\014x)g (t)n(h)o(e)g(co)q(d)o(e)h(t)n(h)o(a)o(t)f(gen)o(era)o(t)o(e)q(s)i(t)n (h)o(em,)c(bu)o(t)j(it)e(t)o(ak)o(e)q(s)i(h)o(ours)f(t)o(o)g(\014n)o(d) g(bugs)g(ot)n(h)o(erwi)q(s)q(e.)0 2699 y(\\De)q(sk)g(c)o(h)o(ec)o(kin)o (g")g(\(pro)q(of)g(readin)o(g\))h(i)q(s)e(almost)g(a)g(lost)i(art)f(t)n (h)o(e)q(s)q(e)h(d)o(ays.)j(T)m(o)q(o)13 b(bad.)18 b(Y)m(ou)c(sh)o (ould)f(d)o(e)q(sk)i(c)o(h)o(ec)o(k)g(y)o(our)f(co)q(d)o(e)0 2756 y(b)q(efore)f(ev)o(en)g(compilin)o(g)e(it,)h(an)o(d)g(d)o(e)q (sk-c)o(h)o(ec)o(k)j(it)d(again)f(p)q(er)q(io)q(dically)g(t)o(o)i(k)o (eep)h(it)e(f)q(re)q(sh)h(in)f(min)o(d)f(an)o(d)h(\014n)o(d)h(n)o(ew)g (errors.)19 b(If)p eop %%Page: 3 3 3 2 bop 0 178 1950 3 v 0 162 a Fb(5.)37 b(De)o(buggin)o(g:)19 b(T)l(o)q(o)o(ls)1489 b Fh(3)0 343 y(y)o(ou)13 b(h)o(a)o(v)o(e)g(som)o (eon)o(e)g(in)g(y)o(our)g(group)h(wh)o(os)q(e)g Fe(only)k Fh(job)13 b(it)g(i)q(s)g(t)o(o)h(d)o(e)q(sk-c)o(h)o(ec)o(k)h(ot)n(h)o (er)g(p)q(eo)o(ple's)e(co)q(d)o(e,)h(t)n(h)o(a)o(t)g(p)q(erson)g(will)e (\014n)o(d)0 400 y(an)o(d)i(\014x)f(more)g(bugs)h(t)n(h)o(an)g(ev)o (ery)o(on)o(e)h(els)q(e)g(com)n(bin)o(e)q(d.)0 478 y(On)o(e)e(can)f(d)o (e)q(sk-c)o(h)o(ec)o(k)i(s)q(ev)o(eral)e(h)n(u)o(n)o(dre)q(d)i(lin)o(e) q(s)e(of)f(co)q(d)o(e)i(p)q(er)g(h)o(our.)k(A)12 b(t)o(o)o(p-\015igh)o (t)g(soft)o(w)o(are)g(en)o(gin)o(eer)h(will)e(wr)q(it)o(e,)h(roughly)m (,)0 535 y(99\045)17 b(accura)o(t)o(e)i(co)q(d)o(e)h(on)e(t)n(h)o(e)h (\014rst)g(pass,)h(whic)o(h)e(st)o(ill)f(m)o(eans)g(on)o(e)i(bug)f(p)q (er)g(h)n(u)o(n)o(dre)q(d)i(lin)o(e)q(s.)31 b(An)o(d)18 b(y)o(ou)g(are)h(not)f(t)o(o)o(p)0 592 y(\015igh)o(t.)f(So)c(...)k(y)o (ou)c(will)f(\014n)o(d)i(s)q(ev)o(eral)f(bugs)h(p)q(er)g(h)o(our)f(b)o (y)h(d)o(e)q(sk)g(c)o(h)o(ec)o(kin)o(g.)19 b(Thi)q(s)13 b(i)q(s)f(a)h(v)o(ery)h(rapid)f(bug)h(\014xin)o(g)f(t)o(ec)o(hnique.)0 648 y(Compare)f(t)n(h)o(a)o(t)i(t)o(o)g(all)f(t)n(h)o(e)h(h)o(ours)g(y) o(ou)g(sp)q(en)o(d)g(screwin)o(g)g(arou)o(n)o(d)g(wit)n(h)g(brok)o(en)g (programs)e(tryin)o(g)i(t)o(o)g(\014n)o(d)g Fe(one)j Fh(bug)d(a)o(t)f(a)0 705 y(t)o(im)o(e.)0 783 y(Th)o(e)h(n)o(ext)h(t)o (ec)o(hnique)f(b)q(ey)o(on)o(d)g(d)o(e)q(sk-c)o(h)o(ec)o(kin)o(g)i(i)q (s)d(t)n(h)o(e)i(t)o(im)o(e-h)o(onore)q(d)e(t)o(ec)o(hnique)h(of)g(ins) q(ert)o(in)o(g)g(\\pr)q(in)o(t")f(st)o(a)o(t)o(em)o(en)o(t)o(s)h(in)o (t)o(o)0 840 y(t)n(h)o(e)i(co)q(d)o(e,)h(an)o(d)f(t)n(h)o(en)g(w)o(a)o (t)o(c)o(hin)o(g)g(t)n(h)o(e)g(logge)q(d)f(v)n(alue)q(s.)24 b(Wit)n(hin)15 b(Circle)h(co)q(d)o(e,)h(y)o(ou)e(can)h(call)f Ff(printf\(\))p Fh(,)f Ff(fprintf\(\))p Fh(,)g(or)0 897 y Ff(log\(\))c Fh(t)o(o)i(d)o(u)o(mp)e(in)o(t)o(ere)q(st)o(in)o(g)j(v)n (alue)q(s)e(a)o(t)g(in)o(t)o(ere)q(st)o(in)o(g)h(t)o(im)o(e)q(s.)17 b(Wh)o(ere)12 b(an)o(d)f(wh)o(en)h(t)o(o)f(d)o(u)o(mp)g(t)n(h)o(e)q(s)q (e)i(v)n(alue)q(s)e(i)q(s)g(an)g(art,)g(whic)o(h)0 954 y(y)o(ou)i(will)g(lear)q(n)h(only)f(wit)n(h)h(pract)o(ice.)0 1032 y(If)c(y)o(ou)h(don't)f(already)h(kno)o(w)f(h)o(o)o(w)h(t)o(o)g (re)q(direct)h(ou)o(t)o(pu)o(t)g(in)f(y)o(our)f(o)o(p)q(era)o(t)o(in)o (g)h(syst)o(em,)f(no)o(w)h(i)q(s)f(t)n(h)o(e)h(t)o(im)o(e)f(t)o(o)h (lear)q(n.)17 b(On)11 b(Unix,)0 1089 y(t)o(yp)q(e)g(t)n(h)o(e)h(comm)o (an)o(d)c(\\)p Ff(man)21 b(csh)p Fh(",)10 b(an)o(d)g(read)i(t)n(h)o(e)g (part)f(a)o(b)q(ou)o(t)g(t)n(h)o(e)h(\\)p Fa(>)p Fh(")e(o)o(p)q(era)o (t)o(or.)18 b(Y)m(ou)10 b(sh)o(ould)h(also)f(lear)q(n)h(t)n(h)o(e)h (di\013erence)0 1145 y(b)q(et)o(w)o(een)i(\\st)o(an)o(d)o(ard)f(ou)o(t) o(pu)o(t")h(\(for)f(example,)e(ou)o(t)o(pu)o(t)j(f)q(rom)d(\\)p Ff(printf)p Fh("\))g(an)o(d)i(\\st)o(an)o(d)o(ard)g(error")h(\(for)f (example,)e(ou)o(t)o(pu)o(t)0 1202 y(f)q(rom)h(\\)p Ff (fprintf\(stderr,)18 b(...\))p Fh("\).)0 1281 y(Ul)o(t)o(im)o(a)o(t)o (ely)m(,)13 b(y)o(ou)i(cannot)h(\014x)f(a)h(program)e(u)o(nle)q(ss)j(y) o(ou)e(u)o(n)o(d)o(erst)o(an)o(d)j(h)o(o)o(w)d(it's)g(o)o(p)q(era)o(t)o (in)o(g)g(in)g(t)n(h)o(e)i(\014rst)f(place.)23 b(P)o(o)o(w)o(erful)0 1337 y(d)o(e)o(buggin)o(g)d(t)o(o)q(ols)e(will)g(h)o(elp)h(y)o(ou)g (collect)g(d)o(a)o(t)o(a,)g(bu)o(t)h(t)n(h)o(ey)g(can't)f(in)o(t)o (erpret)h(it,)g(an)o(d)e(t)n(h)o(ey)i(can't)f(\014x)g(t)n(h)o(e)h(u)o (n)o(d)o(erlyin)o(g)0 1394 y(problems.)d(Only)c(y)o(ou)h(can)g(do)f(t)n (h)o(a)o(t.)0 1472 y(Wh)o(en)h(y)o(ou)g(\014n)o(d)g(a)f(bug)h(...)k(y)o (our)13 b(\014rst)i(impuls)q(e)e(will)f(b)q(e)i(t)o(o)h(c)o(h)o(an)o (ge)f(t)n(h)o(e)h(co)q(d)o(e,)g(kill)d(t)n(h)o(e)j(m)o(anife)q(st)o(a)o (t)o(ion)d(of)h(t)n(h)o(e)i(bug,)e(an)o(d)0 1529 y(d)o(eclare)k(it)e (\014xe)q(d.)23 b(Not)15 b(so)g(f)q(ast!)23 b(Th)o(e)15 b(bug)g(y)o(ou)g(obs)q(erv)o(e)i(i)q(s)e(oft)o(en)g(just)h(t)n(h)o(e)g (sympt)o(om)d(of)i(a)g(d)o(eep)q(er)i(bug.)22 b(Y)m(ou)15 b(sh)o(ould)0 1586 y(k)o(eep)g(pursuin)o(g)g(t)n(h)o(e)h(bug,)e(all)f (t)n(h)o(e)i(w)o(ay)f(do)o(wn.)20 b(Y)m(ou)14 b(sh)o(ould)h(grok)f(t)n (h)o(e)h(bug)f(an)o(d)h(c)o(h)o(er)q(i)q(sh)f(it)h(in)f(fulln)o(e)q(ss) h(b)q(efore)g(ca)n(us)q(in)o(g)0 1643 y(it)o(s)f(di)q(scorp)q(ora)o(t)o (ion.)0 1721 y(Also,)19 b(wh)o(en)f(\014n)o(din)o(g)g(a)g(bug,)h(ask)f (y)o(ours)q(elf)g(t)o(w)o(o)g(que)q(st)o(ions:)28 b(\\Wh)o(a)o(t)17 b(d)o(e)q(s)q(ign)i(an)o(d)f(programmi)o(n)o(g)e(h)o(a)o(bit)o(s)i(le)q (d)h(t)o(o)f(t)n(h)o(e)0 1778 y(in)o(tro)q(d)o(u)o(ct)o(ion)12 b(of)f(t)n(h)o(e)i(bug)f(in)g(t)n(h)o(e)h(\014rst)h(place?")j(An)o(d:)g (\\Wh)o(a)o(t)11 b(h)o(a)o(bit)o(s)i(w)o(ould)e(syst)o(em)o(a)o(t)o (ically)g(prev)o(en)o(t)i(t)n(h)o(e)g(in)o(tro)q(d)o(u)o(ct)o(ion)0 1834 y(of)g(bugs)h(lik)o(e)f(t)n(hi)q(s?")0 2004 y Fd(5)66 b(De)o(buggin)o(g:)28 b(T)-6 b(o)r(o)o(ls)0 2123 y Fh(Wh)o(en)15 b(a)f(Unix)h(pro)q(ce)q(ss)i(acce)q(ss)q(e)q(s)h(an)d(in)o(v)n(alid)e (m)o(emory)f(lo)q(ca)o(t)o(ion,)h(or)i(\(more)f(rarely\))h(execu)o(t)o (e)q(s)j(an)c(illegal)f(instru)o(ct)o(ion,)0 2180 y(or)j(\(ev)o(en)h (more)e(rarely\))h(som)o(et)n(hin)o(g)f(els)q(e)i(go)q(e)q(s)f(wron)o (g,)g(t)n(h)o(e)h(Unix)e(o)o(p)q(era)o(t)o(in)o(g)h(syst)o(em)g(t)o(ak) o(e)q(s)g(con)o(trol.)24 b(Th)o(e)16 b(pro)q(ce)q(ss)j(i)q(s)0 2237 y(incapa)o(ble)13 b(of)h(furt)n(h)o(er)i(execu)o(t)o(ion)f(an)o(d) f(m)n(ust)g(b)q(e)g(kille)q(d.)19 b(Before)c(killin)o(g)d(t)n(h)o(e)j (pro)q(ce)q(ss,)i(h)o(o)o(w)o(ev)o(er,)d(t)n(h)o(e)h(o)o(p)q(era)o(t)o (in)o(g)f(syst)o(em)0 2293 y(do)q(e)q(s)g(som)o(et)n(hin)o(g)f(for)g(y) o(ou:)18 b(it)13 b(o)o(p)q(ens)g(a)h(\014le)f(n)o(am)o(e)q(d)g(\\)p Ff(core)p Fh(")f(an)o(d)i(wr)q(it)o(e)q(s)f(t)n(h)o(e)i(en)o(t)o(ire)f (d)o(a)o(t)o(a)f(space)i(of)e(t)n(h)o(e)h(pro)q(ce)q(ss)j(in)o(t)o(o)c (it.)0 2372 y(Th)n(us,)g(\\d)o(u)o(mpin)o(g)e(core")j(i)q(s)e(not)g(a)h (ca)n(us)q(e)h(of)e(problems,)f(or)h(ev)o(en)i(an)e(e\013ect)i(of)e (problems.)17 b(It's)12 b(som)o(et)n(hin)o(g)g(t)n(h)o(e)h(o)o(p)q(era) o(t)o(in)o(g)0 2428 y(syst)o(em)h(do)q(e)q(s)g(t)o(o)g(h)o(elp)g(y)o (ou)f(\014n)o(d)h(f)q(a)o(t)o(al)e(problems)h(whic)o(h)g(h)o(a)o(v)o(e) h(ren)o(d)o(ere)q(d)i(y)o(our)e(pro)q(ce)q(ss)i(u)o(n)o(a)o(ble)e(t)o (o)g(con)o(t)o(in)n(ue.)0 2507 y(On)o(e)e(reads)h(a)f(\\core")g(\014le) f(wit)n(h)h(a)f(d)o(e)o(bugger.)19 b(Th)o(e)12 b(t)o(w)o(o)f(most)g(p)q (o)o(pular)g(d)o(e)o(buggers)j(on)e(Unix)f(are)h Ff(adb)f Fh(an)o(d)g Ff(gdb)p Fh(,)g(al)o(t)n(h)o(ough)0 2563 y(o)q(ccas)q(ion)o(ally)e(on)o(e)h(\014n)o(ds)h Ff(dbx)p Fh(.)16 b(T)o(ypically)9 b(on)o(e)h(st)o(art)o(s)i(a)e(d)o(e)o(bugger)i (lik)o(e)e(t)n(hi)q(s:)16 b(\\)p Ff(adb)21 b(bin/circle)p Fh(")8 b(or)i(\\)p Ff(gdb)21 b(bin/circle)0 2620 y(lib/core)p Fh(".)0 2698 y(Th)o(e)16 b(\014rst)g(t)n(hin)o(g,)g(an)o(d)f(oft)o(en)g (t)n(h)o(e)h(only)f(t)n(hin)o(g,)g(y)o(ou)g(n)o(ee)q(d)i(t)o(o)e(do)h (ins)q(id)o(e)f(t)n(h)o(e)h(d)o(e)o(bugger)h(i)q(s)e(t)o(ak)o(e)g(a)g (st)o(ac)o(k)h(trace.)24 b(In)15 b Ff(adb)p Fh(,)0 2755 y(t)n(h)o(e)f(comm)o(an)o(d)c(for)j(t)n(hi)q(s)h(i)q(s)e(\\)p Ff($c)p Fh(".)17 b(In)d(gdb,)e(t)n(h)o(e)i(comm)o(an)o(d)d(i)q(s)i(\\)p Ff(backtrace)p Fh(".)i(In)e(db)o(x,)g(t)n(h)o(e)h(comm)o(an)o(d)d(i)q (s)h(\\)p Ff(where)p Fh(".)17 b(Th)o(e)0 2812 y(st)o(ac)o(k)c(trace)h (will)d(t)o(ell)h(y)o(ou)h(wh)o(a)o(t)f(fu)o(nct)o(ion)h(y)o(our)f (program)g(w)o(as)g(in)h(wh)o(en)g(it)f(crash)o(e)q(d,)i(an)o(d)e(wh)o (a)o(t)h(fu)o(nct)o(ions)g(w)o(ere)h(callin)o(g)p eop %%Page: 4 4 4 3 bop 0 178 1950 3 v 0 162 a Fb(6.)37 b(Pro\014lin)o(g)1673 b Fh(4)0 343 y(it.)17 b(Th)o(e)11 b(d)o(e)o(bugger)i(will)c(also)i(li)q (st)f(t)n(h)o(e)i(argu)o(m)o(en)o(t)o(s)f(t)o(o)g(t)n(h)o(e)q(s)q(e)i (fu)o(nct)o(ions.)k(In)o(t)o(erpret)o(in)o(g)c(t)n(h)o(e)q(s)q(e)f (argu)o(m)o(en)o(t)o(s,)f(an)o(d)g(us)q(in)o(g)g(more)0 400 y(adv)n(ance)q(d)j(d)o(e)o(bugger)i(fea)o(t)o(ure)q(s,)f(require)q (s)g(a)f(f)q(air)e(amou)o(n)o(t)h(of)g(kno)o(wle)q(dge)h(a)o(b)q(ou)o (t)g(ass)q(em)n(bly)e(lan)o(guage)i(programmi)o(n)o(g.)0 478 y(If)g(y)o(ou)f(h)o(a)o(v)o(e)g(acce)q(ss)k(t)o(o)d(a)g(program)e (n)o(am)o(e)q(d)h(\\Pur)q(ify")f(...)17 b(lear)q(n)d(h)o(o)o(w)g(t)o(o) g(us)q(e)g(it.)0 647 y Fd(6)66 b(Pro\014lin)o(g)0 766 y Fh(Anot)n(h)o(er)17 b(us)q(eful)e(t)o(ec)o(hnique)h(i)q(s)f (\\pro\014lin)o(g,")f(t)o(o)i(\014n)o(d)f(ou)o(t)h(wh)o(ere)h(y)o(our)e (program)f(i)q(s)g(sp)q(en)o(din)o(g)i(most)f(of)g(it)o(s)g(t)o(im)o (e.)21 b(Thi)q(s)0 823 y(can)14 b(h)o(elp)g(y)o(ou)f(t)o(o)h(m)o(ak)o (e)f(a)g(program)g(more)g(e\016cien)o(t.)0 901 y(Here)i(i)q(s)f(h)o(o)o (w)f(t)o(o)h(pro\014le)g(a)g(program:)51 1021 y(1.)20 b(Remo)o(v)o(e)12 b(all)h(t)n(h)o(e)h(.o)f(\014le)q(s)i(an)o(d)e(t)n(h) o(e)i(\\circle")f(execu)o(t)o(a)o(ble:)278 1128 y Ff(rm)22 b(src/*.o)e(bin/circle)51 1234 y Fh(2.)g(Edit)14 b(y)o(our)f Ff(Makefile)p Fh(,)f(an)o(d)i(c)o(h)o(an)o(ge)g(t)n(h)o(e)h Ff(PROFILE=)d Fh(lin)o(e:)278 1349 y Ff(PROFILE)42 b(=)22 b(-p)51 1464 y Fh(3.)e(Rem)o(ak)o(e)12 b(circle:)278 1579 y Ff(make)51 1694 y Fh(4.)20 b(R)n(u)o(n)13 b(circle)h(as)g (usual.)k(Sh)n(u)o(tdo)o(wn)c(t)n(h)o(e)g(gam)o(e)e(wit)n(h)h(t)n(h)o (e)i Ff(shutdown)d Fh(comm)o(an)o(d)e(wh)o(en)k(y)o(ou)f(h)o(a)o(v)o(e) g(ru)o(n)i(lon)o(g)e(enough)104 1751 y(t)o(o)i(get)g(a)f(go)q(o)q(d)g (pro\014lin)o(g)g(bas)q(e)h(u)o(n)o(d)o(er)h(norm)o(al)d(usage)i(con)o (dit)o(ions.)20 b(If)14 b(y)o(ou)g(crash)h(t)n(h)o(e)h(gam)o(e,)c(or)j (kill)e(t)n(h)o(e)j(pro)q(ce)q(ss)104 1808 y(ext)o(er)q(n)o(ally)m(,)c (y)o(ou)i(w)o(on't)f(get)h(pro\014lin)o(g)f(inform)o(a)o(t)o(ion.)51 1898 y(5.)20 b(R)n(u)o(n)13 b(t)n(h)o(e)i Ff(prof)e Fh(comm)o(an)o(d:) 278 2013 y Ff(prof)21 b(bin/circle)f(>)h(prof.out)51 2127 y Fh(6.)f(Read)14 b(prof.ou)o(t.)k(R)n(u)o(n)13 b(\\)p Ff(man)21 b(prof)p Fh(")13 b(t)o(o)h(u)o(n)o(d)o(erst)o(an)o(d)i (t)n(h)o(e)e(form)o(a)o(t)e(of)i(t)n(h)o(e)g(ou)o(t)o(pu)o(t.)0 2247 y(F)m(or)i(adv)n(ance)q(d)h(pro\014lin)o(g,)f(y)o(ou)g(can)g(us)q (e)h(\\)p Ff(PROFILE)j(=)i(-pg)p Fh(")16 b(in)f(st)o(ep)j(2,)e(an)o(d)g (us)q(e)h(t)n(h)o(e)g(\\gprof)s(")f(comm)o(an)o(d)d(in)j(st)o(ep)i(5.)0 2304 y(Th)o(e)d(\\gprof)s(")f(form)f(of)h(pro\014lin)o(g)g(giv)o(e)q(s) g(y)o(ou)h(a)f(rep)q(ort)i(whic)o(h)e(li)q(st)o(s)h(exact)n(ly)g(h)o(o) o(w)f(m)o(an)o(y)f(t)o(im)o(e)q(s)g(an)o(y)i(fu)o(nct)o(ion)f(calls)g (an)o(y)0 2361 y(ot)n(h)o(er)h(fu)o(nct)o(ion.)j(Thi)q(s)13 b(inform)o(a)o(t)o(ion)e(i)q(s)i(v)n(alua)o(ble)f(for)i(d)o(e)o(buggin) o(g)g(as)g(w)o(ell)f(as)h(p)q(erform)o(ance)g(an)o(alys)q(i)q(s.)0 2439 y(Av)n(aila)o(bilit)o(y)g(of)k(\\prof)s(")f(an)o(d)g(\\gprof)s(")g (v)n(ar)q(ie)q(s)h(f)q(rom)d(syst)o(em)j(t)o(o)g(syst)o(em.)29 b(Almost)17 b(ev)o(ery)h(Unix)g(syst)o(em)f(h)o(as)h(\\prof)s(".)0 2496 y(Only)c(som)o(e)e(syst)o(ems)i(h)o(a)o(v)o(e)g(\\gprof)s(".)p eop %%Page: 5 5 5 4 bop 0 178 1950 3 v 0 162 a Fb(7.)37 b(Bo)q(oks)16 b(for)f(Ser)q(ious)f(Programm)o(ers)1186 b Fh(5)0 343 y Fd(7)66 b(Bo)r(oks)22 b(for)g(Ser)q(ious)e(Programm)n(ers)0 462 y Fh(Ou)o(t)15 b(of)e(all)g(t)n(h)o(e)h(t)n(h)o(ousan)o(ds)h(of)e (b)q(o)q(oks)h(ou)o(t)g(t)n(h)o(ere,)h(t)n(hree)h(st)o(an)o(d)e(ou)o (t:)62 582 y Fc(\017)21 b Fh(K)o(er)q(nigh)o(an)13 b(an)o(d)h(Pla)n (ugh)o(er,)g Fe(The)h(Elements)g(of)f(Pr)n(o)n(gr)n(amming)h(Style)s Fh(.)62 672 y Fc(\017)21 b Fh(K)o(er)q(nigh)o(an)13 b(an)o(d)h(Rit)o(c) o(hie,)f Fe(The)h(C)h(Pr)n(o)n(gr)n(amming)f(L)n(anguage)s Fh(.)62 762 y Fc(\017)21 b Fh(Bro)q(oks,)14 b Fe(The)h(Mythic)n(al)f (Man)i(Month)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF