<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/TR/REC-html40" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="ProgId" content="Word.Document">
<meta name="GENERATOR" content="MSHTML 8.00.6001.19222">
<meta name="Originator" content="Microsoft Word 14">
<link rel="File-List" href="cid:filelist.xml@01CD2201.59C86770"><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Zoom>120</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<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:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><style>@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Tahoma;
}
@page WordSection1 {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; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; text-underline: single
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; text-underline: single
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; text-underline: single
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; text-underline: single
}
SPAN.EmailStyle17 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; mso-style-noshow: yes; text-underline: none; mso-style-type: personal; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-text-animation: none; text-line-through: none
}
SPAN.EmailStyle18 {
        FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; mso-style-noshow: yes; text-underline: none; mso-style-type: personal-reply; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; text-line-through: none
}
SPAN.SpellE {
        mso-style-name: ""; mso-spl-e: yes
}
.MsoChpDefault {
        FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-style-type: export-only; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-default-props: yes
}
DIV.WordSection1 {
        page: WordSection1
}
</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-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";
        mso-bidi-font-family:"Times New Roman";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body style="tab-interval: .5in" lang="EN-US" link="blue" vlink="purple">
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial">Paul,</font></span></div>
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial">NVMeInitSubQueue and NVMeInitCplQueue are called in NVMeWaitOnSetupQueues, which is before we first create IO queues. After we delete the queue and re-create
 them, the pointers are not reset.</font></span></div>
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial">Thanks,</font></span></div>
<div dir="ltr" align="left"><span class="987160817-24042012"><font color="#0000ff" size="2" face="Arial">Alex</font></span></div>
<div dir="ltr" align="left">
<hr tabindex="-1">
</div>
<div dir="ltr" align="left"><font size="2" face="Tahoma"><b>From:</b> Luse, Paul E [mailto:paul.e.luse@intel.com]
<br>
<b>Sent:</b> Tuesday, April 24, 2012 10:02 AM<br>
<b>To:</b> Chang, Alex; nvmewin@lists.openfabrics.org<br>
<b>Subject:</b> RE: Q Pointer Reset After Learning Mode<br>
</font><br>
</div>
<div></div>
<div class="WordSection1">
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">On item 1, it does.<span style="mso-spacerun: yes"> 
</span>Look in <span class="SpellE">NVMeInitSubQueue</span>() which is indeed called after we’ve learned. On item 2 I believe we discussed only checking this in DBG case because, once validated, it should work all of the time.<span style="mso-spacerun: yes"> 
</span>I’m not totally against a check in the free build as well but if it fails we’d need to set the error state for the driver because if our pending bit is set in this routine something really bad has happened.<span style="mso-spacerun: yes"> 
</span>We can talk about it in the review and if we agree to look at it in the free case I can check it in as part of this patch.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thx<br>
Paul<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">ULONG
<span class="SpellE">NVMeInitSubQueue</span>(<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>PNVME_DEVICE_EXTENSION <span class="SpellE">pAE</span>,<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>USHORT <span class="SpellE">QueueID</span><o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">{<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>PQUEUE_INFO <span class="SpellE">pQI</span> = &<span class="SpellE">pAE</span>-><span class="SpellE">QueueInfo</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>PSUB_QUEUE_INFO <span class="SpellE">pSQI</span> = <span class="SpellE">pQI</span>-><span class="SpellE">pSubQueueInfo</span> +
<span class="SpellE">QueueID</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>PRES_MAPPING_TBL <span class="SpellE">pRMT</span> = &<span class="SpellE">pAE</span>-><span class="SpellE">ResMapTbl</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>ULONG_PTR <span class="SpellE">PtrTemp</span> = 0;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>USHORT Entries;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>/* Ensure the <span class="SpellE">QueueID</span> is valid via the number of active cores in system */<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>if (<span class="SpellE">QueueID</span> > <span class="SpellE">pRMT</span>-><span class="SpellE">NumActiveCores</span>)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">       
</span>return ( STOR_STATUS_INVALID_PARAMETER );<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span>/* Initialize static fields of SUB_QUEUE_INFO structure */<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span><span class="SpellE">pSQI</span>-><span class="SpellE">SubQEntries</span> = (<span class="SpellE">QueueID</span> != 0) ?
<span class="SpellE">pQI</span>-><span class="SpellE">NumIoQEntriesAllocated</span> :<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">                                        
</span><span class="SpellE">pQI</span>-><span class="SpellE">NumAdQEntriesAllocated</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span><span class="SpellE">pSQI</span>-><span class="SpellE">SubQueueID</span> =
<span class="SpellE">QueueID</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><span style="mso-spacerun: yes">   
</span><span class="SpellE">pSQI</span>-><span class="SpellE">FreeSubQEntries</span> =
<span class="SpellE">pSQI</span>-><span class="SpellE">SubQEntries</span>;<o:p></o:p></span></font></p>
<p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-bidi-font-family: Calibri; mso-bidi-font-weight: normal"><span style="mso-spacerun: yes">   
</span><span class="SpellE">pSQI</span>-><span class="SpellE">SubQTailPtr</span> = 0;<o:p></o:p></span></font></b></p>
<p class="MsoNormal"><b style="mso-bidi-font-weight: normal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-bidi-font-family: Calibri; mso-bidi-font-weight: normal"><span style="mso-spacerun: yes">   
</span><span class="SpellE">pSQI</span>-><span class="SpellE">SubQHeadPtr</span> = 0;<o:p></o:p></span></font></b></p>
<p class="MsoNormal"><font color="#1f497d" size="2" face="Calibri"><span style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></span></font></p>
<div>
<div style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<p class="MsoNormal"><b><font size="2" face="Tahoma"><span style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</span></font></b><font size="2" face="Tahoma"><span style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'">
 Chang, Alex [mailto:Alex.Chang@idt.com] <br>
<b><span style="FONT-WEIGHT: bold">Sent:</span></b> Tuesday, April 24, 2012 9:56 AM<br>
<b><span style="FONT-WEIGHT: bold">To:</span></b> Luse, Paul E; nvmewin@lists.openfabrics.org<br>
<b><span style="FONT-WEIGHT: bold">Subject:</span></b> Q Pointer Reset After Learning Mode<o:p></o:p></span></font></p>
</div>
</div>
<p class="MsoNormal"><font size="2" face="Calibri"><span style="FONT-SIZE: 11pt"><o:p> </o:p></span></font></p>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Hi Paul,</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">I am afraid that I have couple more issues to report:</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">1. When the driver finishes core-vector map learning, it deletes all IO queues and re-creates them. However, the driver
 doesn't reset Submission Tail Pointer and Completion Head Pointer to 0, which causes an extra completion entry for each IO queue and other side effects.</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">2. In NVMeCompleteCmd, the driver asserts to check Pending bit and Context pointer of CMD_ENTRY (for Checked-built driver
 only). Free-built driver ignores the checking and insert the CMD_ENTRY back to freeQList, which corrupts the linked-list when the completion queue entry is not a valid one and gets added back to the freeQList TWICE. For example, an extra completion entry produced
 by issue#1 above.</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">I remember the original logic I put in was returning FALSE when it fails checking Pending bit and Context pointer and
 not touching the linked-list in the end of the routine.</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font color="blue" size="2" face="Arial"><span style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</span></font><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal"><font size="3" face="Times New Roman"><span style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></span></font></p>
</div>
</div>
</body>
</html>