MIME-Version: 1.0
Content-Type: multipart/related; boundary="----=_NextPart_01C85F21.A24D17E0"

This document is a Single File Web Page, also known as a Web Archive file.  If you are seeing this message, your browser or editor doesn't support Web Archive files.  Please download a browser that supports Web Archive, such as Windows® Internet Explorer®.

------=_NextPart_01C85F21.A24D17E0
Content-Location: file:///C:/B133D633/SOS.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"

<html xmlns:v=3D"urn:schemas-microsoft-com:vml"
xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 12">
<meta name=3DOriginator content=3D"Microsoft Word 12">
<link rel=3DFile-List href=3D"SOS_files/filelist.xml">
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Tony</o:Author>
  <o:LastAuthor>Tony</o:LastAuthor>
  <o:Revision>2</o:Revision>
  <o:TotalTime>2</o:TotalTime>
  <o:Created>2008-01-25T12:12:00Z</o:Created>
  <o:LastSaved>2008-01-25T12:12:00Z</o:LastSaved>
  <o:Pages>6</o:Pages>
  <o:Words>1798</o:Words>
  <o:Characters>10249</o:Characters>
  <o:Lines>85</o:Lines>
  <o:Paragraphs>24</o:Paragraphs>
  <o:CharactersWithSpaces>12023</o:CharactersWithSpaces>
  <o:Version>12.00</o:Version>
 </o:DocumentProperties>
</xml><![endif]-->
<link rel=3DthemeData href=3D"SOS_files/themedata.thmx">
<link rel=3DcolorSchemeMapping href=3D"SOS_files/colorschememapping.xml">
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:TrackMoves>false</w:TrackMoves>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <m:mathPr>
   <m:mathFont m:val=3D"Cambria Math"/>
   <m:brkBin m:val=3D"before"/>
   <m:brkBinSub m:val=3D"&#45;-"/>
   <m:smallFrac m:val=3D"off"/>
   <m:dispDef/>
   <m:lMargin m:val=3D"0"/>
   <m:rMargin m:val=3D"0"/>
   <m:defJc m:val=3D"centerGroup"/>
   <m:wrapIndent m:val=3D"1440"/>
   <m:intLim m:val=3D"subSup"/>
   <m:naryLim m:val=3D"undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"true"
  DefSemiHidden=3D"true" DefQFormat=3D"false" DefPriority=3D"99"
  LatentStyleCount=3D"267">
  <w:LsdException Locked=3D"false" Priority=3D"0" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Normal"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"heading 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 7"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 8"/>
  <w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D"=
heading 9"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 7"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 8"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"toc 9"/>
  <w:LsdException Locked=3D"false" Priority=3D"35" QFormat=3D"true" Name=3D=
"caption"/>
  <w:LsdException Locked=3D"false" Priority=3D"10" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Title"/>
  <w:LsdException Locked=3D"false" Priority=3D"1" Name=3D"Default Paragraph=
 Font"/>
  <w:LsdException Locked=3D"false" Priority=3D"11" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtitle"/>
  <w:LsdException Locked=3D"false" Priority=3D"22" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Strong"/>
  <w:LsdException Locked=3D"false" Priority=3D"20" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"59" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Table Grid"/>
  <w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Placeho=
lder Text"/>
  <w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"No Spacing"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 1"/>
  <w:LsdException Locked=3D"false" UnhideWhenUsed=3D"false" Name=3D"Revisio=
n"/>
  <w:LsdException Locked=3D"false" Priority=3D"34" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"List Paragraph"/>
  <w:LsdException Locked=3D"false" Priority=3D"29" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Quote"/>
  <w:LsdException Locked=3D"false" Priority=3D"30" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Quote"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 1"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 2"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 3"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 4"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 5"/>
  <w:LsdException Locked=3D"false" Priority=3D"60" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Shading Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"61" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light List Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"62" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Light Grid Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"63" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 1 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"64" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Shading 2 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"65" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 1 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"66" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium List 2 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"67" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 1 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"68" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 2 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"69" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Medium Grid 3 Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"70" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Dark List Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"71" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Shading Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"72" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful List Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"73" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" Name=3D"Colorful Grid Accent 6"/>
  <w:LsdException Locked=3D"false" Priority=3D"19" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"21" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Emphasis"/>
  <w:LsdException Locked=3D"false" Priority=3D"31" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Subtle Reference"/>
  <w:LsdException Locked=3D"false" Priority=3D"32" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Intense Reference"/>
  <w:LsdException Locked=3D"false" Priority=3D"33" SemiHidden=3D"false"
   UnhideWhenUsed=3D"false" QFormat=3D"true" Name=3D"Book Title"/>
  <w:LsdException Locked=3D"false" Priority=3D"37" Name=3D"Bibliography"/>
  <w:LsdException Locked=3D"false" Priority=3D"39" QFormat=3D"true" Name=3D=
"TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1593833729 1073750107 16 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;}
p.style8, li.style8, div.style8
	{mso-style-name:style8;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:8.5pt;
	font-family:"Verdana","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";}
span.style3511
	{mso-style-name:style3511;
	mso-style-unhide:no;
	mso-ansi-font-size:8.5pt;
	mso-bidi-font-size:8.5pt;
	font-family:"Verdana","sans-serif";
	mso-ascii-font-family:Verdana;
	mso-hansi-font-family:Verdana;
	font-weight:bold;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:65305123;
	mso-list-template-ids:-897180744;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:446197109;
	mso-list-template-ids:2096758926;
	mso-list-style-priority:99;
	mso-list-style-name:"Outline Basic";}
@list l1:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:.25in;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:.5in;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:.75in;
	text-indent:-.25in;
	font-family:Symbol;
	color:windowtext;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:-;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.0in;
	text-indent:-.25in;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
@list l1:level5
	{mso-level-number-format:none;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.0in;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-number-format:none;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.25in;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-number-format:none;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.5in;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-number-format:none;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:1.75in;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-number-format:none;
	mso-level-text:"";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:2.0in;
	text-indent:-.25in;}
@list l0:level1 lfo3
	{mso-level-start-at:0;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"3074"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p><span class=3Dstyle3511><span style=3D'font-size:8.5pt'>SOS - (&quot;Son=
 of
Strike&quot;) </span></span><b><span style=3D'font-size:8.5pt;font-family:"=
Verdana","sans-serif"'><br>
</span></b><a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;http://www.develop.com/us/technology/bio.aspx?id=3D98"
target=3D"_blank"><b><span style=3D'font-size:8.5pt;font-family:"Verdana","=
sans-serif"'>Mark
Smith, CTO </span></b></a></p>

<p class=3Dstyle8>One of the things DevelopMentor is known for is deep dive=
s into
technology.&nbsp; In that vein, this month I&#8217;d like to focus on one of
the things you would learn if you attended our intense <a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;http://www.develop.com/us/training/course.aspx?id=3D273"
target=3D"_blank">Guerrilla .NET</a> class or the 9-5 <a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;http://www.develop.com/us/training/course.aspx?id=3D344"
target=3D"_blank">Effective .NET</a> class we offer for onsite delivery &#8=
211;
&#8220;Son of Strike&#8221;.</p>

<p class=3Dstyle8>For those of you who are not familiar with SOS.DLL, it&#8=
217;s
a debugging extension used primarily with <span class=3DSpellE>WinDBG</span=
>, but
also loadable into Visual Studio 2005.&nbsp; It gives you an &#8220;inner
view&#8221; into the CLR, allowing you to peek around and explore the data
structures of .NET.</p>

<p class=3Dstyle8>In our <a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;http://www.develop.com/us/training/course.aspx?id=3D273"
target=3D"_blank">Guerrilla .NET</a> and <a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;http://www.develop.com/us/training/course.aspx?id=3D344"
target=3D"_blank">Effective .NET</a> class, we talk about memory leaks and =
how to
debug them &#8211; here I&#8217;ll present an ASP.NET application that is
leaking memory by holding references to page objects after they have already
returned their content.&nbsp; I set this example up by having the page class
hook up an event handler to some global event and then never removing the
handler &#8211; this causes the page to be &#8220;kept alive&#8221; and giv=
es
me the super-size application I am looking for.&nbsp;&nbsp; This, of course=
, is
bad form because the <span class=3DSpellE>System.Web.UI.Page</span> object =
is
intended to be a transient object - it goes away at the end of the request =
- in
production code, I would really bind the event to a handler in <span
class=3DSpellE><strong><span style=3D'font-family:"Verdana","sans-serif"'>g=
lobal.asax</span></strong></span>
instead &#8211; and that&#8217;s why we have to debug it!</p>

<p class=3Dstyle8>Generally, when debugging a memory exception, the first t=
hing
you want to know is what is taking up all the memory?&nbsp; Here, I&#8217;ll
run the web page a few times, note that the working set continually increas=
es
and decides &quot;I&#8217;ve got a memory leak.&quot;&nbsp; So, to debug th=
at,
the first thing I need to do is take a hang dump of the process.&nbsp; You =
do
that through the <strong><span style=3D'font-family:"Verdana","sans-serif"'=
>ADPLUS.VBS</span></strong>
script which is supplied with the Windows Debugging Tools.</p>

<p class=3Dstyle8>I can then load this dump up into <span class=3DSpellE>Wi=
nDBG</span>
and started poking around. First, I&#8217;ll load SOS into memory:</p>

<p class=3Dstyle8>0:000&gt; .load <span class=3DSpellE><span class=3DGramE>=
sos</span></span></p>

<p class=3Dstyle8>Next, let&#8217;s take a look at the managed heap and see=
 what
we&#8217;ve got in memory:</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !<span class=3DSpellE>DumpH=
eap</span></span>
-stat</p>

<p class=3Dstyle8><span class=3DGramE>total</span> 36955 objects</p>

<p class=3Dstyle8>Statistics:</p>

<p class=3Dstyle8>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MT&nbsp;&nbsp;&nbsp;
Count&nbsp;&nbsp;&nbsp; <span class=3DSpellE>TotalSize</span> Class Name</p>

<p class=3Dstyle8>7b4ecd7c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.ButtonInternal.ButtonPopupAdapter</span=
></p>

<p class=3Dstyle8>7b481f00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.LinkLabel+LinkComparer</span></p>

<p class=3Dstyle8>7b475ca8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.FormCollection</span></p>

<p class=3Dstyle8>7b474f8c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.Layout.DefaultLayout</span></p>

<p class=3Dstyle8>7b4749e0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.ClientUtils+WeakRefCollection</span></p>

<p class=3Dstyle8>7b473ca8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Windows.Forms.Layout.ArrangedElementCollection</span>=
</p>

<p class=3Dstyle8>7a755834&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Diagnostics.PerformanceCounterCategoryType</span></p>

<p class=3Dstyle8>7a753394&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Diagnostics.TraceOptions</span></p>

<p class=3Dstyle8>7a71a710&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12 <span
class=3DSpellE>System.Net.TimeoutValidator</span></p>

<p class=3Dstyle8>.......</p>

<p class=3Dstyle8>00166030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
891&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 169744&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Free</p>

<p class=3Dstyle8>054d24d4&nbsp;&nbsp;&nbsp;&nbsp;
3128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 187680 <span class=3DSpellE>System=
.Web.UI.LiteralControl</span></p>

<p class=3Dstyle8><strong><span style=3D'font-family:"Verdana","sans-serif"=
'>0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
519&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 197220 <span class=3DSpellE>ASP.def=
ault_aspx</span></span></strong></p>

<p class=3Dstyle8>791242ec&nbsp;&nbsp;&nbsp;&nbsp;
1545&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 297960 <span class=3DSpellE>System=
.Collections.Hashtable+<span
class=3DGramE>bucket</span></span><span class=3DGramE>[]</span></p>

<p class=3Dstyle8>79124670&nbsp;&nbsp;&nbsp;&nbsp;
1185&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1090500 <span class=3DSpellE><span
class=3DGramE>System.Char</span></span><span class=3DGramE>[]</span></p>

<p class=3Dstyle8>79124228&nbsp;&nbsp;&nbsp; 11961&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp; 1279380
<span class=3DSpellE><span class=3DGramE>System.Object</span></span><span
class=3DGramE>[]</span></p>

<p class=3Dstyle8>790fa3e0&nbsp;&nbsp;&nbsp; 19149&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;
1561392 <span class=3DSpellE>System.String</span></p>

<p class=3Dstyle8>Total 110069 objects</p>

<p class=3Dstyle8>From this, I can see that we&#8217;ve got 519 <span
class=3DSpellE>ASP.default_aspx</span> objects in memory &#8211; I&#8217;m =
going
to guess that these are actually the page objects for default.aspx (the nam=
e <span
class=3DSpellE>kinda</span> gives it away).</p>

<p class=3Dstyle8>So, next let&#8217;s use <span class=3DSpellE><strong><sp=
an
style=3D'font-family:"Verdana","sans-serif"'>DumpHeap</span></strong></span=
> to
just look at this specific type by giving it a metadata token:</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !<span class=3DSpellE>DumpH=
eap</span></span>
-<span class=3DSpellE>mt</span>
0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>&nbsp;Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
MT&nbsp;&nbsp;&nbsp;&nbsp; Size</p>

<p class=3Dstyle8>.....&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>01854ff0 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>01860130 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>0186b2b4 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>018773f8 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>01882538 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>0188d6bc 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>01898840 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>018a39c4 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>018aeb48 0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8><span class=3DGramE>total</span> 519 objects</p>

<p class=3Dstyle8>Statistics:</p>

<p class=3Dstyle8>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MT&nbsp;&nbsp;&nbsp;
Count&nbsp;&nbsp;&nbsp; <span class=3DSpellE>TotalSize</span> Class Name</p>

<p class=3Dstyle8>0548cbd4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
519&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 197220 <span class=3DSpellE>ASP.def=
ault_aspx</span></p>

<p class=3Dstyle8>Total 519 objects</p>

<p class=3Dstyle8>With this output, I can see how much total size is being =
taken
up, but more importantly, I see a list of all the objects and their
address.&nbsp; With a single instance, I can use the <em><span
style=3D'font-family:"Verdana","sans-serif"'>very</span></em> cool <span
class=3DSpellE><strong><span style=3D'font-family:"Verdana","sans-serif"'>G=
CRoot</span></strong></span>
command to determine why a page instance was still rooted and therefore not
collectable. </p>

<p class=3Dstyle8><strong><span style=3D'font-family:"Verdana","sans-serif"=
'>Note: </span></strong>it
appears that the <span class=3DSpellE>GCRoot</span> command doesn't work we=
ll
inside VS.NET 2005 - apparently the SOS debugging extension is using some
debugger API which isn't fully supported in VS.NET, so you need to familiar=
ize
yourself with <span class=3DSpellE>WinDBG</span> to do this.</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span><span class=3DSpell=
E>gcroot</span>
018aeb48 </p>

<p class=3Dstyle8>Note: Roots found on stacks may be false positives. Run &=
quot;<span
class=3DGramE>!help</span> <span class=3DSpellE>gcroot</span>&quot; for</p>

<p class=3Dstyle8><span class=3DGramE>more</span> info.</p>

<p class=3Dstyle8>Scan Thread 0 <span class=3DSpellE>OSTHread</span> 3a8</p>

<p class=3Dstyle8>Scan Thread 2 <span class=3DSpellE>OSTHread</span> e8</p>

<p class=3Dstyle8>Scan Thread 3 <span class=3DSpellE>OSTHread</span> 1a8</p>

<p class=3Dstyle8>Scan Thread 6 <span class=3DSpellE>OSTHread</span> 7d4</p>

<p class=3Dstyle8>Scan Thread 7 <span class=3DSpellE>OSTHread</span> 2b4</p>

<p class=3Dstyle8>Scan Thread 8 <span class=3DSpellE>OSTHread</span> <span
class=3DSpellE>fdc</span></p>

<p class=3Dstyle8>Scan Thread 9 <span class=3DSpellE>OSTHread</span> <span
class=3DSpellE>eac</span></p>

<p class=3Dstyle8><span class=3DGramE>DOMAIN(</span>001E5E08):HANDLE(Pinned=
):12312f0:Root:0226c498(System.Object[])-&gt;</p>

<p class=3Dstyle8><span class=3DGramE>018af940(</span><span class=3DSpellE>=
System.EventHandler</span>)-&gt;</p>

<p class=3Dstyle8><span class=3DGramE>0186c0ac(</span><span class=3DSpellE>=
System.Object</span>[])-&gt;</p>

<p class=3Dstyle8><span class=3DGramE>018af920(</span><span class=3DSpellE>=
System.EventHandler</span>)-&gt;</p>

<p class=3Dstyle8><span class=3DGramE>018aeb48(</span><span class=3DSpellE>=
ASP.default_aspx</span>)</p>

<p class=3Dstyle8>With this output, I can tell that my <span class=3DSpellE=
>default_aspx</span>
object is being kept alive through an <span class=3DSpellE>EventHandler</sp=
an> as
I expected. The interesting thing about this output is I cannot tell which
event handler is keeping it alive - i.e. there is nothing in this root list
that points to a specific object holding it other than an object[]. That
essentially means this is a static event and there isn't an actual object a=
round
on the heap for it. This just makes the debugging exercise more interesting=
 -
after all if it were an instance event then I would see the class name at t=
he
top of the root list and we could stop right here. </p>

<p class=3Dstyle8>So, my next step is to dump the event handler to try to
identify what method it is wrapping - I could then search the code for this
method and find out where it is being bound. I dump out the <span class=3DS=
pellE><strong><span
style=3D'font-family:"Verdana","sans-serif"'>EventHandler</span></strong></=
span>
object using the handy dandy dump object command (do):</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span>do 018af920</p>

<p class=3Dstyle8>Name: <span class=3DSpellE>System.EventHandler</span></p>

<p class=3Dstyle8><span class=3DSpellE>MethodTable</span>: 7910d61c</p>

<p class=3Dstyle8><span class=3DSpellE>EEClass</span>: 790c3a7c</p>

<p class=3Dstyle8>Size: 32(0x20) bytes</p>

<p class=3Dstyle8>&nbsp;(C:/WINDOWS/assembly/GAC_32/mscorlib/2.0.0.0__b77a5=
c561934e089/mscorlib.dll)</p>

<p class=3Dstyle8>Fields:</p>

<p class=3Dstyle8>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MT&nbsp;&nbsp;&nbsp;
Field&nbsp;&nbsp;
Offset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;
Type VT&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>Attr</span>&nbsp;&nbsp=
;&nbsp;
Value Name</p>

<p class=3Dstyle8>790f9c18<span class=3DGramE>&nbsp; 40000f9</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>System.Obj=
ect</span>&nbsp;
0 instance 018aeb48 _target</p>

<p class=3Dstyle8>79109208<span class=3DGramE>&nbsp; 40000fa</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
8 ...<span class=3DSpellE>ection.MethodBase</span>&nbsp; 0 instance 0000000=
0 _<span
class=3DSpellE>methodBase</span></p>

<p class=3Dstyle8>790fe160<span class=3DGramE>&nbsp; 40000fb</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>System.Int=
Ptr</span>&nbsp;
0 instance 88962888 _<span class=3DSpellE>methodPtr</span></p>

<p class=3Dstyle8>790fe160<span class=3DGramE>&nbsp; 40000fc</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>System.In=
tPtr</span>&nbsp;
0 instance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 _<span class=3DSpell=
E>methodPtrAux</span></p>

<p class=3Dstyle8>790f9c18<span class=3DGramE>&nbsp; 4000106</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>System.Ob=
ject</span>&nbsp;
0 instance 00000000 _<span class=3DSpellE>invocationList</span></p>

<p class=3Dstyle8>790fe160<span class=3DGramE>&nbsp; 4000107</span>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>System.In=
tPtr</span>&nbsp;
0 instance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 _<span class=3DSpell=
E>invocationCount</span></p>

<p class=3Dstyle8>From this I get the internals of the <span class=3DSpellE=
>EventHandler</span>
object. It gives me some specific information:</p>

<ul type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto;
     mso-list:l0 level1 lfo3;tab-stops:list .5in'><strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'>_target</span></strong><span style=3D'font-size:8.5=
pt;
     font-family:"Verdana","sans-serif";mso-fareast-font-family:"Times New =
Roman"'>
     is the object the delegate is holding onto - my <span class=3DSpellE>d=
efault_aspx</span>
     in this case. The value <em><span style=3D'font-family:"Verdana","sans=
-serif"'>better</span></em>
     match up with my original object!<o:p></o:p></span></li>
 <li class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto;
     mso-list:l0 level1 lfo3;tab-stops:list .5in'><strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'>_<span class=3DSpellE>methodBase</span></span></str=
ong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'> is used for dynamic code and is null here.<o:p></o=
:p></span></li>
 <li class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto;
     mso-list:l0 level1 lfo3;tab-stops:list .5in'><strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'>_<span class=3DSpellE>methodPtr</span></span></stro=
ng><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'> is the method associated with the instance, or
     possibly a dynamically generated <span class=3DSpellE>thunk</span> for
     static methods. This is what I'm interested in.<o:p></o:p></span></li>
 <li class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto;
     mso-list:l0 level1 lfo3;tab-stops:list .5in'><strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'>_<span class=3DSpellE>methodPtrAux</span></span></s=
trong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'> is used for static methods; this holds the method
     descriptor and the <strong><span style=3D'font-family:"Verdana","sans-=
serif"'>_<span
     class=3DSpellE>methodPtr</span></span></strong> is a dynamically gener=
ated
     block of code to remove <span class=3DGramE>the <strong><span
     style=3D'font-family:"Verdana","sans-serif"'>this</span></strong></spa=
n>
     reference. Noting that this is null, I can infer that this is an insta=
nce
     method bound to the delegate.<o:p></o:p></span></li>
 <li class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto;
     mso-list:l0 level1 lfo3;tab-stops:list .5in'><strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'>_<span class=3DSpellE>invocationList</span></span><=
/strong><span
     style=3D'font-size:8.5pt;font-family:"Verdana","sans-serif";mso-fareas=
t-font-family:
     "Times New Roman"'> and <strong><span style=3D'font-family:"Verdana","=
sans-serif"'>_<span
     class=3DSpellE>invocationCount</span></span></strong> are used for Mul=
ticast
     Delegates -- these are both zero indicating that this is a single dele=
gate
     and there is no chain to follow.<o:p></o:p></span></li>
</ul>

<p class=3Dstyle8>My next step is to try to get a valid method name from th=
e <strong><span
style=3D'font-family:"Verdana","sans-serif"'>_<span class=3DSpellE>methodPt=
r</span></span></strong>
so I convert that to hex and pass it into IP2MD.</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span>ip2md 0n88962888 </=
p>

<p class=3Dstyle8>Failed to request <span class=3DSpellE>MethodData</span>,=
 not in
JIT code range</p>

<p class=3Dstyle8>This is a pretty common error and simply means that the m=
ethod
may not have been <span class=3DSpellE>JITted</span> yet, or may be a dynam=
ic
block of code which never went through the JIT compiler. In .NET 1.1 we cou=
ld
start dumping method descriptors and trying to match up the address (<span
class=3DSpellE>DumpClass</span> -<span class=3DSpellE>md</span>) for this c=
lass and
<span class=3DGramE>it's</span> base class. </p>

<p class=3Dstyle8>However, under .NET 2.0 this rarely works anymore - the a=
ddress
doesn't appear to ever match up to a valid descriptor. However, it clearly =
is
part of the managed heap due to its address. So, failing to locate this
address, I first try to disassemble the code:</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span>u 0n88962888 </p>

<p class=3Dstyle8>Unmanaged code</p>

<p class=3Dstyle8>054d7748 e862289b74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
call&nbsp;&nbsp;&nbsp; mscorwks<span class=3DGramE>!LogHelp</span>_Terminat=
eOnAssert+0x3f5f
(79e89faf)</p>

<p class=3Dstyle8>054d774d
5e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;
pop&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>esi</span></p>

<p class=3Dstyle8>054d774e cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class=3DSpellE>int</span>&nbsp;&nbsp;&nbsp;&nbsp; 3</p>

<p class=3Dstyle8>054d774f
cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;
<span class=3DSpellE>int</span>&nbsp;&nbsp;&nbsp;&nbsp; 3</p>

<p class=3Dstyle8>054d7750
38c8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
class=3DSpellE>cmp</span>&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>al<s=
pan
class=3DGramE>,cl</span></span></p>

<p class=3Dstyle8>054d7752
48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;
<span class=3DSpellE>dec</span>&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpell=
E>eax</span></p>

<p class=3Dstyle8>054d7753 05a0774d05&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add&nbsp;&nbsp;&nbsp;&nbsp; eax<span class=3DGramE>,54D77A0h</span></p>

<p class=3Dstyle8>054d7758
0100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add&nbsp;&nbsp;&nbsp;&nbsp; <span class=3DSpellE>dword</span> <span class=
=3DSpellE>ptr</span>
[<span class=3DSpellE>eax</span>]<span class=3DGramE>,<span class=3DSpellE>=
eax</span></span></p>

<p class=3Dstyle8>054d775a
0011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add&nbsp;&nbsp;&nbsp;&nbsp; byte <span class=3DSpellE>ptr</span> [<span
class=3DSpellE>ecx</span>]<span class=3DGramE>,dl</span></p>

<p class=3Dstyle8>054d775c
0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add&nbsp;&nbsp;&nbsp;&nbsp; byte <span class=3DSpellE>ptr</span> [<span
class=3DSpellE>eax</span>]<span class=3DGramE>,al</span></p>

<p class=3Dstyle8>This doesn't even look like valid code to me &#8211;<span
class=3DGramE>&nbsp; this</span> looks like random data, so let&#8217;s dum=
p it
out to get a better idea of what it is using the dump data (<span class=3DS=
pellE>dd</span>)
command:</p>

<p class=3Dstyle8>0:000&gt; <span class=3DSpellE>dd</span> 0n88962888 </p>

<p class=3Dstyle8>054d7748<span class=3DGramE>&nbsp; 9b2862e8</span> cccc5e=
74<strong><span
style=3D'font-family:"Verdana","sans-serif"'> 0548c838 054d77a0</span></str=
ong></p>

<p class=3Dstyle8>054d7758<span class=3DGramE>&nbsp; 11000001</span> 900000=
00
054d77a0 11000002</p>

<p class=3Dstyle8>054d7768<span class=3DGramE>&nbsp; 90000004</span> 000000=
00
054d77a0 00000000</p>

<p class=3Dstyle8>The third and fourth DWORD look interesting because they =
appear
to fall in the managed heap as well -- so let&#8217;s dump them out to try =
to
figure out what they are &#8211; through trial and error, we&#8217;ll find =
out
that the third DWORD is actually a method descriptor:</p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span><span class=3DSpell=
E>dumpmd</span>
0548c838 </p>

<p class=3Dstyle8>Method Name: _<span class=3DSpellE><span class=3DGramE>De=
fault.OnDatabaseHasChanged</span></span><span
class=3DGramE>(</span><span class=3DSpellE>System.Object</span>, <span
class=3DSpellE>System.EventArgs</span>)</p>

<p class=3Dstyle8>Class: 054ab574</p>

<p class=3Dstyle8><span class=3DSpellE>MethodTable</span>: 0548c86c</p>

<p class=3Dstyle8><span class=3DSpellE><span class=3DGramE>mdToken</span></=
span>:
06000004</p>

<p class=3Dstyle8>Module: 0548c35c</p>

<p class=3Dstyle8><span class=3DSpellE>IsJitted</span>: no</p>

<p class=3Dstyle8><span class=3DSpellE>m_CodeOrIL</span>: <span class=3DSpe=
llE>ffffffff</span></p>

<p class=3Dstyle8>This is the real method bound to the delegate instance. T=
he
other DWORD appears to be a metadata reference to the event owner itself:</=
p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span><span class=3DSpell=
E>dumpmt</span>
054d77a0</p>

<p class=3Dstyle8><span class=3DSpellE>EEClass</span>: 0551940c</p>

<p class=3Dstyle8>Module: 048ac9ec</p>

<p class=3Dstyle8>Name: <span class=3DSpellE>DatabaseMonitor</span></p>

<p class=3Dstyle8><span class=3DSpellE><span class=3DGramE>mdToken</span></=
span>:
02000002&nbsp; (C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP=
.NET
Files/<span class=3DSpellE>leakypage</span>/2a399ab5/b1e04c63/App_Code.onwg=
1zqj.dll)</p>

<p class=3Dstyle8><span class=3DSpellE>BaseSize</span>: 0xc</p>

<p class=3Dstyle8><span class=3DSpellE>ComponentSize</span>: 0x0</p>

<p class=3Dstyle8>Number of <span class=3DSpellE>IFaces</span> in <span
class=3DSpellE>IFaceMap</span>: 0</p>

<p class=3Dstyle8>Slots in <span class=3DSpellE>VTable</span>: 8</p>

<p class=3Dstyle8>From here I can see the module that this code is defined =
in
(the dynamically generated <span class=3DSpellE>App_Code</span> directory) =
and
the name (<span class=3DSpellE><strong><span style=3D'font-family:"Verdana"=
,"sans-serif"'>DatabaseMonitor</span></strong></span>).
This gives me enough information to stop here and begin looking at the code
itself - specifically where default.aspx binds <span class=3DGramE>it's</sp=
an> <span
class=3DSpellE>OnDatabaseHasChanged</span> method to the <span class=3DSpel=
lE>DatabaseMonitor</span>
static class defined somewhere in the <span class=3DSpellE>App_Code</span>
directory. If I didn't have the source code available, I could locate the
module and then save it out to a file through the <span class=3DSpellE><str=
ong><span
style=3D'font-family:"Verdana","sans-serif"'>savemodule</span></strong></sp=
an>
command:</p>

<p class=3Dstyle8>0:000&gt; lm m App_Code_onwg1zqj</p>

<p class=3Dstyle8><span class=3DGramE>start</span>&nbsp;&nbsp;&nbsp;
end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; module name</p>

<p class=3Dstyle8>04de0000 04de8000&nbsp;&nbsp; App_Code_onwg1zqj C (no
symbols)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p class=3Dstyle8>0:000<span class=3DGramE>&gt; !</span><span class=3DSpell=
E>savemodule</span>
04de0000 c:/appcode.dll</p>

<p class=3Dstyle8>3 sections in file</p>

<p class=3Dstyle8><span class=3DGramE>section</span> 0 - VA=3D2000, <span
class=3DSpellE>VASize</span>=3D504, <span class=3DSpellE>FileAddr</span>=3D=
200, <span
class=3DSpellE>FileSize</span>=3D600</p>

<p class=3Dstyle8><span class=3DGramE>section</span> 1 - VA=3D4000, <span
class=3DSpellE>VASize</span>=3D2c8, <span class=3DSpellE>FileAddr</span>=3D=
800, <span
class=3DSpellE>FileSize</span>=3D400</p>

<p class=3Dstyle8><span class=3DGramE>section</span> 2 - VA=3D6000, <span
class=3DSpellE>VASize</span>=3Dc, <span class=3DSpellE>FileAddr</span>=3Dc0=
0, <span
class=3DSpellE>FileSize</span>=3D200</p>

<p class=3Dstyle8>I could then <span class=3DSpellE>ILDasm</span> or Reflec=
tor the
generated assembly and look for my bug from that.&nbsp; This is just a quick
look at some of the exercises we take students through in our classes &#821=
1; I
would encourage you to learn <span class=3DSpellE>WinDBG</span> and SOS as =
they
are extremely powerful tools to have in your repertoire!&nbsp; If you have =
any
questions or comments, I&#8217;d love to hear them &#8211; email me at <a
href=3D"http://email.global-profiles.com/go.shtml?20070808111848116385&amp;=
m75321&amp;mailto:marksm@develop.com">marksm@develop.com</a>!</p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>

------=_NextPart_01C85F21.A24D17E0
Content-Location: file:///C:/B133D633/SOS_files/themedata.thmx
Content-Transfer-Encoding: base64
Content-Type: application/vnd.ms-officetheme

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
AAAA

------=_NextPart_01C85F21.A24D17E0
Content-Location: file:///C:/B133D633/SOS_files/colorschememapping.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml

<?xml version=3D"1.0" encoding=3D"UTF-8" standalone=3D"yes"?>
<a:clrMap xmlns:a=3D"http://schemas.openxmlformats.org/drawingml/2006/main"=
 bg1=3D"lt1" tx1=3D"dk1" bg2=3D"lt2" tx2=3D"dk2" accent1=3D"accent1" accent=
2=3D"accent2" accent3=3D"accent3" accent4=3D"accent4" accent5=3D"accent5" a=
ccent6=3D"accent6" hlink=3D"hlink" folHlink=3D"folHlink"/>
------=_NextPart_01C85F21.A24D17E0
Content-Location: file:///C:/B133D633/SOS_files/filelist.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml; charset="utf-8"

<xml xmlns:o=3D"urn:schemas-microsoft-com:office:office">
 <o:MainFile HRef=3D"../SOS.htm"/>
 <o:File HRef=3D"themedata.thmx"/>
 <o:File HRef=3D"colorschememapping.xml"/>
 <o:File HRef=3D"filelist.xml"/>
</xml>
------=_NextPart_01C85F21.A24D17E0--

