Преглед на файлове

题库后台导出选项自动换行,离线考试模板修改

weiwenhai преди 7 години
родител
ревизия
b1e08c0c2d

+ 1452 - 0
cqb-comm-utils/src/main/resources/sxsf_outline_paper_template.ftl

@@ -0,0 +1,1452 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:name="/_rels/.rels" pkg:padding="512">
+		<pkg:xmlData>
+			<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+				<Relationship Id="rId3" Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"/>
+				<Relationship Id="rId2" Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties"/>
+				<Relationship Id="rId1" Target="word/document.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"/>
+			</Relationships>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:name="/word/_rels/document.xml.rels" pkg:padding="256">
+		<pkg:xmlData>
+			<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+				<Relationship Id="rId8" Target="fontTable.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"/>
+				<Relationship Id="rId3" Target="settings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings"/>
+				<Relationship Id="rId7" Target="footer1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"/>
+				<Relationship Id="rId2" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"/>
+				<Relationship Id="rId1" Target="numbering.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"/>
+				<Relationship Id="rId6" Target="endnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes"/>
+				<Relationship Id="rId5" Target="footnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"/>
+				<Relationship Id="rId10" Target="stylesWithEffects.xml" Type="http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects"/>
+				<Relationship Id="rId4" Target="webSettings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"/>
+				<Relationship Id="rId9" Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"/>
+			</Relationships>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" pkg:name="/word/document.xml">
+		<pkg:xmlData>
+			<w:document xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:body>
+					<w:p w:rsidP="00165E69" w:rsidR="00D84CD3" w:rsidRDefault="00D84CD3" w:rsidRPr="00D84CD3">
+						<w:pPr>
+							<w:pStyle w:val="a3"/>
+							<w:spacing w:afterLines="50" w:beforeLines="70" w:line="360" w:lineRule="auto"/>
+							<w:rPr>
+								<w:b/>
+								<w:sz w:val="48"/>
+								<w:szCs w:val="48"/>
+							</w:rPr>
+						</w:pPr>
+						<w:r w:rsidRPr="00D84CD3">
+							<w:rPr>
+								<w:rFonts w:hint="eastAsia"/>
+								<w:b/>
+								<w:sz w:val="48"/>
+								<w:szCs w:val="48"/>
+							</w:rPr>
+							<w:t>陕西师范大学网络教育学院试卷</w:t>
+						</w:r>
+					</w:p>
+					<w:tbl>
+						<w:tblPr>
+							<w:tblStyle w:val="a6"/>
+							<w:tblW w:type="auto" w:w="0"/>
+							<w:tblBorders>
+								<w:top w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:left w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:bottom w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:right w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:insideH w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:insideV w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+							</w:tblBorders>
+							<w:tblLook w:val="04A0"/>
+						</w:tblPr>
+						<w:tblGrid>
+							<w:gridCol w:w="8188"/>
+						</w:tblGrid>
+						<w:tr w:rsidR="00FD1FAC" w:rsidRPr="00D84CD3" w:rsidTr="00FD1FAC">
+							<w:tc>
+								<w:tcPr>
+									<w:tcW w:type="dxa" w:w="8188"/>
+									<w:vAlign w:val="center"/>
+								</w:tcPr>
+								<w:p w:rsidP="00FD1FAC" w:rsidR="00FD1FAC" w:rsidRDefault="00FD1FAC" w:rsidRPr="00D84CD3">
+									<w:pPr>
+										<w:pStyle w:val="a3"/>
+										<w:spacing w:line="360" w:lineRule="auto"/>
+										<w:jc w:val="both"/>
+										<w:rPr>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+									</w:pPr>
+									<w:r>
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>课程名称</w:t>
+									</w:r>
+									<w:r w:rsidRPr="00D84CD3">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>:</w:t>
+									</w:r>
+									<w:proofErr w:type="spellStart"/>
+									<w:r w:rsidR="007B12E2">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>${courseName}</w:t>
+									</w:r>
+									<w:proofErr w:type="spellEnd"/>
+								</w:p>
+							</w:tc>
+						</w:tr>
+						<w:tr w:rsidR="00FD1FAC" w:rsidRPr="00D84CD3" w:rsidTr="00FD1FAC">
+							<w:tc>
+								<w:tcPr>
+									<w:tcW w:type="dxa" w:w="8188"/>
+									<w:vAlign w:val="center"/>
+								</w:tcPr>
+								<w:p w:rsidP="00FD1FAC" w:rsidR="00FD1FAC" w:rsidRDefault="00FD1FAC" w:rsidRPr="00D84CD3">
+									<w:pPr>
+										<w:pStyle w:val="a3"/>
+										<w:spacing w:line="360" w:lineRule="auto"/>
+										<w:jc w:val="both"/>
+										<w:rPr>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+									</w:pPr>
+									<w:r>
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>课程代码</w:t>
+									</w:r>
+									<w:r w:rsidRPr="00D84CD3">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>:</w:t>
+									</w:r>
+									<w:proofErr w:type="spellStart"/>
+									<w:r w:rsidR="007B12E2">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>${courseNo}</w:t>
+									</w:r>
+									<w:proofErr w:type="spellEnd"/>
+								</w:p>
+							</w:tc>
+						</w:tr>
+					</w:tbl>
+					<w:p w:rsidP="009A4B1A" w:rsidR="00E16E16" w:rsidRDefault="00E16E16" w:rsidRPr="00D84CD3">
+						<w:pPr>
+							<w:spacing w:line="360" w:lineRule="auto"/>
+							<w:rPr>
+								<w:szCs w:val="21"/>
+							</w:rPr>
+						</w:pPr>
+						<w:bookmarkStart w:id="0" w:name="_GoBack"/>
+						<w:bookmarkEnd w:id="0"/>
+					</w:p>
+				<!--循环大题-->
+	    <#if paperDetails?exists>
+	    <#list paperDetails as paperDetail>
+		<w:p w:rsidP="004D3783" w:rsidR="00687CD1" w:rsidRDefault="004D3783" w:rsidRPr="006E2D68">
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.cnNum}</w:t>
+			</w:r>
+			 <w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>、</w:t>
+			</w:r>
+	        <w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.name}</w:t>
+			</w:r>
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.title}</w:t>
+			</w:r>
+		</w:p>
+		<#if paperDetail.titleDetail?exists>
+		<w:p w:rsidP="00F964A2" w:rsidR="00F964A2" w:rsidRDefault="004D3783">
+			<w:pPr>
+				<w:ind w:firstLine="420" w:left="100"/>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+			</w:pPr>
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.titleDetail}</w:t>
+			</w:r>
+			<w:r w:rsidR="00F964A2">
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t xml:space="preserve"/>
+			</w:r>
+		</w:p>
+		</#if>
+	 	<!--循环小题-->
+	    <#if paperDetail.paperDetailUnits?exists>
+	    <#list paperDetail.paperDetailUnits as paperDetailUnit>
+	        ${paperDetailUnit.question.quesBodyWord}
+	    <#if paperDetailUnit.question.subQuestions?exists>
+	    <#list paperDetailUnit.question.subQuestions as subQuestion>
+	
+	        ${subQuestion.quesBodyWord}
+	
+	        <#if subQuestion.quesOptions?exists>
+	        <#list subQuestion.quesOptions as subQuesOption>
+	            ${subQuesOption.optionBodyWord}
+	        </#list>
+	        </#if>
+	    </#list>
+	    </#if>
+	
+	    <#if paperDetailUnit.question.quesOptions?exists>
+	    <#list paperDetailUnit.question.quesOptions as quesOption>
+	        ${quesOption.optionBodyWord}
+	     </#list>
+	    </#if>
+		<w:p w:rsidP="00852887" w:rsidR="00852887" w:rsidRDefault="00852887">
+			<w:pPr>
+				<w:spacing w:line="400" w:lineRule="exact"/>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体"/>
+					<w:b/>
+					<w:sz w:val="28"/>
+					<w:szCs w:val="28"/>
+				</w:rPr>
+			</w:pPr>
+		</w:p>
+		</#list>
+	    </#if>
+	    </#list>
+	    </#if>
+					<w:sectPr w:rsidR="004351E4" w:rsidRPr="001673EE" w:rsidSect="00743EA7">
+						<w:footerReference r:id="rId7" w:type="default"/>
+						<w:pgSz w:h="16838" w:w="11906"/>
+						<w:pgMar w:bottom="1440" w:footer="992" w:gutter="0" w:header="851" w:left="1800" w:right="1800" w:top="1440"/>
+						<w:cols w:space="425"/>
+						<w:docGrid w:linePitch="312" w:type="lines"/>
+					</w:sectPr>
+				</w:body>
+			</w:document>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" pkg:name="/word/footnotes.xml">
+		<pkg:xmlData>
+			<w:footnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:footnote w:id="-1" w:type="separator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:separator/>
+						</w:r>
+					</w:p>
+				</w:footnote>
+				<w:footnote w:id="0" w:type="continuationSeparator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:continuationSeparator/>
+						</w:r>
+					</w:p>
+				</w:footnote>
+			</w:footnotes>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" pkg:name="/word/endnotes.xml">
+		<pkg:xmlData>
+			<w:endnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:endnote w:id="-1" w:type="separator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:separator/>
+						</w:r>
+					</w:p>
+				</w:endnote>
+				<w:endnote w:id="0" w:type="continuationSeparator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:continuationSeparator/>
+						</w:r>
+					</w:p>
+				</w:endnote>
+			</w:endnotes>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" pkg:name="/word/footer1.xml">
+		<pkg:xmlData>
+			<w:ftr xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:sdt>
+					<w:sdtPr>
+						<w:id w:val="9293955"/>
+						<w:docPartObj>
+							<w:docPartGallery w:val="Page Numbers (Bottom of Page)"/>
+							<w:docPartUnique/>
+						</w:docPartObj>
+					</w:sdtPr>
+					<w:sdtContent>
+						<w:p w:rsidR="004B68A5" w:rsidRDefault="000210CF">
+							<w:pPr>
+								<w:pStyle w:val="a4"/>
+								<w:jc w:val="center"/>
+							</w:pPr>
+							<w:r>
+								<w:fldChar w:fldCharType="begin"/>
+							</w:r>
+							<w:r w:rsidR="003734D1">
+								<w:instrText xml:space="preserve">PAGE  \* ArabicDash  \* MERGEFORMAT </w:instrText>
+							</w:r>
+							<w:r>
+								<w:fldChar w:fldCharType="separate"/>
+							</w:r>
+							<w:r w:rsidR="007B12E2">
+								<w:rPr>
+									<w:noProof/>
+								</w:rPr>
+								<w:t>- 1 -</w:t>
+							</w:r>
+							<w:r>
+								<w:rPr>
+									<w:noProof/>
+								</w:rPr>
+								<w:fldChar w:fldCharType="end"/>
+							</w:r>
+						</w:p>
+					</w:sdtContent>
+				</w:sdt>
+				<w:p w:rsidR="004B68A5" w:rsidRDefault="004B68A5">
+					<w:pPr>
+						<w:pStyle w:val="a4"/>
+					</w:pPr>
+				</w:p>
+			</w:ftr>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.theme+xml" pkg:name="/word/theme/theme1.xml">
+		<pkg:xmlData>
+			<a:theme name="Office 主题" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
+				<a:themeElements>
+					<a:clrScheme name="Office">
+						<a:dk1>
+							<a:sysClr lastClr="000000" val="windowText"/>
+						</a:dk1>
+						<a:lt1>
+							<a:sysClr lastClr="FFFFFF" val="window"/>
+						</a:lt1>
+						<a:dk2>
+							<a:srgbClr val="1F497D"/>
+						</a:dk2>
+						<a:lt2>
+							<a:srgbClr val="EEECE1"/>
+						</a:lt2>
+						<a:accent1>
+							<a:srgbClr val="4F81BD"/>
+						</a:accent1>
+						<a:accent2>
+							<a:srgbClr val="C0504D"/>
+						</a:accent2>
+						<a:accent3>
+							<a:srgbClr val="9BBB59"/>
+						</a:accent3>
+						<a:accent4>
+							<a:srgbClr val="8064A2"/>
+						</a:accent4>
+						<a:accent5>
+							<a:srgbClr val="4BACC6"/>
+						</a:accent5>
+						<a:accent6>
+							<a:srgbClr val="F79646"/>
+						</a:accent6>
+						<a:hlink>
+							<a:srgbClr val="0000FF"/>
+						</a:hlink>
+						<a:folHlink>
+							<a:srgbClr val="800080"/>
+						</a:folHlink>
+					</a:clrScheme>
+					<a:fontScheme name="Office">
+						<a:majorFont>
+							<a:latin typeface="Cambria"/>
+							<a:ea typeface=""/>
+							<a:cs typeface=""/>
+							<a:font script="Jpan" typeface="MS ゴシック"/>
+							<a:font script="Hang" typeface="맑은 고딕"/>
+							<a:font script="Hans" typeface="宋体"/>
+							<a:font script="Hant" typeface="新細明體"/>
+							<a:font script="Arab" typeface="Times New Roman"/>
+							<a:font script="Hebr" typeface="Times New Roman"/>
+							<a:font script="Thai" typeface="Angsana New"/>
+							<a:font script="Ethi" typeface="Nyala"/>
+							<a:font script="Beng" typeface="Vrinda"/>
+							<a:font script="Gujr" typeface="Shruti"/>
+							<a:font script="Khmr" typeface="MoolBoran"/>
+							<a:font script="Knda" typeface="Tunga"/>
+							<a:font script="Guru" typeface="Raavi"/>
+							<a:font script="Cans" typeface="Euphemia"/>
+							<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+							<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+							<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+							<a:font script="Thaa" typeface="MV Boli"/>
+							<a:font script="Deva" typeface="Mangal"/>
+							<a:font script="Telu" typeface="Gautami"/>
+							<a:font script="Taml" typeface="Latha"/>
+							<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+							<a:font script="Orya" typeface="Kalinga"/>
+							<a:font script="Mlym" typeface="Kartika"/>
+							<a:font script="Laoo" typeface="DokChampa"/>
+							<a:font script="Sinh" typeface="Iskoola Pota"/>
+							<a:font script="Mong" typeface="Mongolian Baiti"/>
+							<a:font script="Viet" typeface="Times New Roman"/>
+							<a:font script="Uigh" typeface="Microsoft Uighur"/>
+						</a:majorFont>
+						<a:minorFont>
+							<a:latin typeface="Calibri"/>
+							<a:ea typeface=""/>
+							<a:cs typeface=""/>
+							<a:font script="Jpan" typeface="MS 明朝"/>
+							<a:font script="Hang" typeface="맑은 고딕"/>
+							<a:font script="Hans" typeface="宋体"/>
+							<a:font script="Hant" typeface="新細明體"/>
+							<a:font script="Arab" typeface="Arial"/>
+							<a:font script="Hebr" typeface="Arial"/>
+							<a:font script="Thai" typeface="Cordia New"/>
+							<a:font script="Ethi" typeface="Nyala"/>
+							<a:font script="Beng" typeface="Vrinda"/>
+							<a:font script="Gujr" typeface="Shruti"/>
+							<a:font script="Khmr" typeface="DaunPenh"/>
+							<a:font script="Knda" typeface="Tunga"/>
+							<a:font script="Guru" typeface="Raavi"/>
+							<a:font script="Cans" typeface="Euphemia"/>
+							<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+							<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+							<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+							<a:font script="Thaa" typeface="MV Boli"/>
+							<a:font script="Deva" typeface="Mangal"/>
+							<a:font script="Telu" typeface="Gautami"/>
+							<a:font script="Taml" typeface="Latha"/>
+							<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+							<a:font script="Orya" typeface="Kalinga"/>
+							<a:font script="Mlym" typeface="Kartika"/>
+							<a:font script="Laoo" typeface="DokChampa"/>
+							<a:font script="Sinh" typeface="Iskoola Pota"/>
+							<a:font script="Mong" typeface="Mongolian Baiti"/>
+							<a:font script="Viet" typeface="Arial"/>
+							<a:font script="Uigh" typeface="Microsoft Uighur"/>
+						</a:minorFont>
+					</a:fontScheme>
+					<a:fmtScheme name="Office">
+						<a:fillStyleLst>
+							<a:solidFill>
+								<a:schemeClr val="phClr"/>
+							</a:solidFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="50000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="35000">
+										<a:schemeClr val="phClr">
+											<a:tint val="37000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:tint val="15000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:lin ang="16200000" scaled="1"/>
+							</a:gradFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:shade val="51000"/>
+											<a:satMod val="130000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="80000">
+										<a:schemeClr val="phClr">
+											<a:shade val="93000"/>
+											<a:satMod val="130000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="94000"/>
+											<a:satMod val="135000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:lin ang="16200000" scaled="0"/>
+							</a:gradFill>
+						</a:fillStyleLst>
+						<a:lnStyleLst>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="9525">
+								<a:solidFill>
+									<a:schemeClr val="phClr">
+										<a:shade val="95000"/>
+										<a:satMod val="105000"/>
+									</a:schemeClr>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="25400">
+								<a:solidFill>
+									<a:schemeClr val="phClr"/>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="38100">
+								<a:solidFill>
+									<a:schemeClr val="phClr"/>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+						</a:lnStyleLst>
+						<a:effectStyleLst>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="20000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="38000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+							</a:effectStyle>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="23000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="35000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+							</a:effectStyle>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="23000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="35000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+								<a:scene3d>
+									<a:camera prst="orthographicFront">
+										<a:rot lat="0" lon="0" rev="0"/>
+									</a:camera>
+									<a:lightRig dir="t" rig="threePt">
+										<a:rot lat="0" lon="0" rev="1200000"/>
+									</a:lightRig>
+								</a:scene3d>
+								<a:sp3d>
+									<a:bevelT h="25400" w="63500"/>
+								</a:sp3d>
+							</a:effectStyle>
+						</a:effectStyleLst>
+						<a:bgFillStyleLst>
+							<a:solidFill>
+								<a:schemeClr val="phClr"/>
+							</a:solidFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="40000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="40000">
+										<a:schemeClr val="phClr">
+											<a:tint val="45000"/>
+											<a:shade val="99000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="20000"/>
+											<a:satMod val="255000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:path path="circle">
+									<a:fillToRect b="180000" l="50000" r="50000" t="-80000"/>
+								</a:path>
+							</a:gradFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="80000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="30000"/>
+											<a:satMod val="200000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:path path="circle">
+									<a:fillToRect b="50000" l="50000" r="50000" t="50000"/>
+								</a:path>
+							</a:gradFill>
+						</a:bgFillStyleLst>
+					</a:fmtScheme>
+				</a:themeElements>
+				<a:objectDefaults/>
+				<a:extraClrSchemeLst/>
+			</a:theme>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" pkg:name="/word/settings.xml">
+		<pkg:xmlData>
+			<w:settings xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word">
+				<w:zoom w:percent="100"/>
+				<w:bordersDoNotSurroundHeader/>
+				<w:bordersDoNotSurroundFooter/>
+				<w:proofState w:spelling="clean"/>
+				<w:defaultTabStop w:val="420"/>
+				<w:drawingGridVerticalSpacing w:val="156"/>
+				<w:displayHorizontalDrawingGridEvery w:val="0"/>
+				<w:displayVerticalDrawingGridEvery w:val="2"/>
+				<w:characterSpacingControl w:val="compressPunctuation"/>
+				<w:hdrShapeDefaults>
+					<o:shapedefaults spidmax="17410" v:ext="edit"/>
+				</w:hdrShapeDefaults>
+				<w:footnotePr>
+					<w:footnote w:id="-1"/>
+					<w:footnote w:id="0"/>
+				</w:footnotePr>
+				<w:endnotePr>
+					<w:endnote w:id="-1"/>
+					<w:endnote w:id="0"/>
+				</w:endnotePr>
+				<w:compat>
+					<w:spaceForUL/>
+					<w:balanceSingleByteDoubleByteWidth/>
+					<w:doNotLeaveBackslashAlone/>
+					<w:ulTrailSpace/>
+					<w:doNotExpandShiftReturn/>
+					<w:adjustLineHeightInTable/>
+					<w:useFELayout/>
+				</w:compat>
+				<w:rsids>
+					<w:rsidRoot w:val="004B68A5"/>
+					<w:rsid w:val="000210CF"/>
+					<w:rsid w:val="00054219"/>
+					<w:rsid w:val="000D7C3A"/>
+					<w:rsid w:val="00165E69"/>
+					<w:rsid w:val="001673EE"/>
+					<w:rsid w:val="001C47CA"/>
+					<w:rsid w:val="001E65F0"/>
+					<w:rsid w:val="001F7B66"/>
+					<w:rsid w:val="00226FD3"/>
+					<w:rsid w:val="002B7A65"/>
+					<w:rsid w:val="002F60CE"/>
+					<w:rsid w:val="00341136"/>
+					<w:rsid w:val="00353D3B"/>
+					<w:rsid w:val="003734D1"/>
+					<w:rsid w:val="003B077D"/>
+					<w:rsid w:val="004061C1"/>
+					<w:rsid w:val="004351E4"/>
+					<w:rsid w:val="00495DDC"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rsid w:val="004D48D3"/>
+					<w:rsid w:val="00507EF6"/>
+					<w:rsid w:val="00534BFA"/>
+					<w:rsid w:val="00694DCE"/>
+					<w:rsid w:val="006B5AFA"/>
+					<w:rsid w:val="00743EA7"/>
+					<w:rsid w:val="007B12E2"/>
+					<w:rsid w:val="00966C6E"/>
+					<w:rsid w:val="009A4B1A"/>
+					<w:rsid w:val="009E5655"/>
+					<w:rsid w:val="00A04C43"/>
+					<w:rsid w:val="00A15C02"/>
+					<w:rsid w:val="00A64592"/>
+					<w:rsid w:val="00B161D7"/>
+					<w:rsid w:val="00B91160"/>
+					<w:rsid w:val="00C4688F"/>
+					<w:rsid w:val="00C507B2"/>
+					<w:rsid w:val="00C74A36"/>
+					<w:rsid w:val="00C84AFA"/>
+					<w:rsid w:val="00C9467E"/>
+					<w:rsid w:val="00CA2CA5"/>
+					<w:rsid w:val="00D8220C"/>
+					<w:rsid w:val="00D84CD3"/>
+					<w:rsid w:val="00DA2FA2"/>
+					<w:rsid w:val="00E16E16"/>
+					<w:rsid w:val="00E2553D"/>
+					<w:rsid w:val="00EF5B9E"/>
+					<w:rsid w:val="00F95F42"/>
+					<w:rsid w:val="00FD1FAC"/>
+				</w:rsids>
+				<m:mathPr>
+					<m:mathFont m:val="Cambria Math"/>
+					<m:brkBin m:val="before"/>
+					<m:brkBinSub m:val="--"/>
+					<m:smallFrac/>
+					<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:themeFontLang w:eastAsia="zh-CN" w:val="en-US"/>
+				<w:clrSchemeMapping w:accent1="accent1" w:accent2="accent2" w:accent3="accent3" w:accent4="accent4" w:accent5="accent5" w:accent6="accent6" w:bg1="light1" w:bg2="light2" w:followedHyperlink="followedHyperlink" w:hyperlink="hyperlink" w:t1="dark1" w:t2="dark2"/>
+				<w:shapeDefaults>
+					<o:shapedefaults spidmax="17410" v:ext="edit"/>
+					<o:shapelayout v:ext="edit">
+						<o:idmap data="1" v:ext="edit"/>
+					</o:shapelayout>
+				</w:shapeDefaults>
+				<w:decimalSymbol w:val="."/>
+				<w:listSeparator w:val=","/>
+			</w:settings>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" pkg:name="/word/webSettings.xml">
+		<pkg:xmlData>
+			<w:webSettings xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:optimizeForBrowser/>
+			</w:webSettings>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" pkg:name="/word/styles.xml">
+		<pkg:xmlData>
+			<w:styles xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:docDefaults>
+					<w:rPrDefault>
+						<w:rPr>
+							<w:rFonts w:asciiTheme="minorHAnsi" w:cstheme="minorBidi" w:eastAsiaTheme="minorEastAsia" w:hAnsiTheme="minorHAnsi"/>
+							<w:kern w:val="2"/>
+							<w:sz w:val="21"/>
+							<w:szCs w:val="22"/>
+							<w:lang w:bidi="ar-SA" w:eastAsia="zh-CN" w:val="en-US"/>
+						</w:rPr>
+					</w:rPrDefault>
+					<w:pPrDefault/>
+				</w:docDefaults>
+				<w:latentStyles w:count="267" w:defLockedState="0" w:defQFormat="0" w:defSemiHidden="1" w:defUIPriority="99" w:defUnhideWhenUsed="1">
+					<w:lsdException w:name="Normal" w:qFormat="1" w:semiHidden="0" w:uiPriority="0" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 1" w:qFormat="1" w:semiHidden="0" w:uiPriority="9" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 2" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 3" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 4" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 5" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 6" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 7" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 8" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 9" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="toc 1" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 2" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 3" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 4" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 5" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 6" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 7" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 8" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 9" w:uiPriority="39"/>
+					<w:lsdException w:name="caption" w:qFormat="1" w:uiPriority="35"/>
+					<w:lsdException w:name="Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="10" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Default Paragraph Font" w:uiPriority="1"/>
+					<w:lsdException w:name="Subtitle" w:qFormat="1" w:semiHidden="0" w:uiPriority="11" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Strong" w:qFormat="1" w:semiHidden="0" w:uiPriority="22" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="20" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Table Grid" w:semiHidden="0" w:uiPriority="59" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Placeholder Text" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="No Spacing" w:qFormat="1" w:semiHidden="0" w:uiPriority="1" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 1" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 1" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 1" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 1" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Revision" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="List Paragraph" w:qFormat="1" w:semiHidden="0" w:uiPriority="34" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="29" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="30" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 1" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 1" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 1" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 1" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 1" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 1" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 1" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 2" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 2" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 2" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 2" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 2" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 2" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 2" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 2" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 2" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 2" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 2" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 3" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 3" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 3" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 3" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 3" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 3" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 3" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 3" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 3" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 3" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 3" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 3" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 3" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 4" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 4" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 4" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 4" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 4" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 4" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 4" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 4" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 4" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 4" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 4" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 4" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 4" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 4" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 5" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 5" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 5" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 5" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 5" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 5" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 5" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 5" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 5" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 5" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 5" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 5" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 5" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 5" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 6" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 6" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 6" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 6" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 6" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 6" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 6" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 6" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 6" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 6" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 6" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 6" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 6" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 6" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="19" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="21" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="31" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="32" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Book Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="33" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Bibliography" w:uiPriority="37"/>
+					<w:lsdException w:name="TOC Heading" w:qFormat="1" w:uiPriority="39"/>
+				</w:latentStyles>
+				<w:style w:default="1" w:styleId="a" w:type="paragraph">
+					<w:name w:val="Normal"/>
+					<w:qFormat/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:widowControl w:val="0"/>
+						<w:jc w:val="both"/>
+					</w:pPr>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:szCs w:val="24"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a0" w:type="character">
+					<w:name w:val="Default Paragraph Font"/>
+					<w:uiPriority w:val="1"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:default="1" w:styleId="a1" w:type="table">
+					<w:name w:val="Normal Table"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:qFormat/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a2" w:type="numbering">
+					<w:name w:val="No List"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:styleId="a3" w:type="paragraph">
+					<w:name w:val="header"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char"/>
+					<w:uiPriority w:val="99"/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:tabs>
+							<w:tab w:pos="4153" w:val="center"/>
+							<w:tab w:pos="8306" w:val="right"/>
+						</w:tabs>
+						<w:snapToGrid w:val="0"/>
+						<w:jc w:val="center"/>
+					</w:pPr>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char" w:type="character">
+					<w:name w:val="页眉 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a3"/>
+					<w:uiPriority w:val="99"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a4" w:type="paragraph">
+					<w:name w:val="footer"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char0"/>
+					<w:uiPriority w:val="99"/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:tabs>
+							<w:tab w:pos="4153" w:val="center"/>
+							<w:tab w:pos="8306" w:val="right"/>
+						</w:tabs>
+						<w:snapToGrid w:val="0"/>
+						<w:jc w:val="left"/>
+					</w:pPr>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char0" w:type="character">
+					<w:name w:val="页脚 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a4"/>
+					<w:uiPriority w:val="99"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a5" w:type="paragraph">
+					<w:name w:val="Balloon Text"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char1"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char1" w:type="character">
+					<w:name w:val="批注框文本 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a5"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a6" w:type="table">
+					<w:name w:val="Table Grid"/>
+					<w:basedOn w:val="a1"/>
+					<w:uiPriority w:val="59"/>
+					<w:rsid w:val="00D84CD3"/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblBorders>
+							<w:top w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:left w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:bottom w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:right w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:insideH w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:insideV w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+						</w:tblBorders>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:styleId="a7" w:type="paragraph">
+					<w:name w:val="List Paragraph"/>
+					<w:basedOn w:val="a"/>
+					<w:uiPriority w:val="34"/>
+					<w:qFormat/>
+					<w:rsid w:val="009E5655"/>
+					<w:pPr>
+						<w:ind w:firstLine="420" w:firstLineChars="200"/>
+					</w:pPr>
+				</w:style>
+			</w:styles>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" pkg:name="/word/numbering.xml">
+		<pkg:xmlData>
+			<w:numbering xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:abstractNum w:abstractNumId="0">
+					<w:nsid w:val="4ACC32A4"/>
+					<w:multiLevelType w:val="hybridMultilevel"/>
+					<w:tmpl w:val="E9C27ABE"/>
+					<w:lvl w:ilvl="0" w:tplc="DA8E2842">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="japaneseCounting"/>
+						<w:lvlText w:val="%1、"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="440" w:left="440"/>
+						</w:pPr>
+						<w:rPr>
+							<w:rFonts w:hint="default"/>
+						</w:rPr>
+					</w:lvl>
+					<w:lvl w:ilvl="1" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%2)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="840"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="2" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%3."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="1260"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="3" w:tentative="1" w:tplc="0409000F">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="decimal"/>
+						<w:lvlText w:val="%4."/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="1680"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="4" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%5)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2100"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="5" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%6."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2520"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="6" w:tentative="1" w:tplc="0409000F">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="decimal"/>
+						<w:lvlText w:val="%7."/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2940"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="7" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%8)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="3360"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="8" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%9."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="3780"/>
+						</w:pPr>
+					</w:lvl>
+				</w:abstractNum>
+				<w:num w:numId="1">
+					<w:abstractNumId w:val="0"/>
+				</w:num>
+			</w:numbering>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.core-properties+xml" pkg:name="/docProps/core.xml" pkg:padding="256">
+		<pkg:xmlData>
+			<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+				<dc:creator>User</dc:creator>
+				<cp:lastModifiedBy>weiwenhai</cp:lastModifiedBy>
+				<cp:revision>2</cp:revision>
+				<dcterms:created xsi:type="dcterms:W3CDTF">2018-03-05T02:52:00Z</dcterms:created>
+				<dcterms:modified xsi:type="dcterms:W3CDTF">2018-03-05T02:52:00Z</dcterms:modified>
+			</cp:coreProperties>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" pkg:name="/word/fontTable.xml">
+		<pkg:xmlData>
+			<w:fonts xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:font w:name="Times New Roman">
+					<w:panose1 w:val="02020603050405020304"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="roman"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002EFF" w:usb1="C000785B" w:usb2="00000009" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="Calibri">
+					<w:panose1 w:val="020F0502020204030204"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="swiss"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002AFF" w:usb1="C000247B" w:usb2="00000009" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="宋体">
+					<w:altName w:val="SimSun"/>
+					<w:panose1 w:val="02010600030101010101"/>
+					<w:charset w:val="86"/>
+					<w:family w:val="auto"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="00040001" w:csb1="00000000" w:usb0="00000003" w:usb1="288F0000" w:usb2="00000016" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="Cambria">
+					<w:panose1 w:val="02040503050406030204"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="roman"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="0000019F" w:csb1="00000000" w:usb0="E00006FF" w:usb1="400004FF" w:usb2="00000000" w:usb3="00000000"/>
+				</w:font>
+			</w:fonts>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" pkg:name="/docProps/app.xml" pkg:padding="256">
+		<pkg:xmlData>
+			<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
+				<Template>Normal.dotm</Template>
+				<TotalTime>0</TotalTime>
+				<Pages>1</Pages>
+				<Words>5</Words>
+				<Characters>33</Characters>
+				<Application>Microsoft Office Word</Application>
+				<DocSecurity>0</DocSecurity>
+				<Lines>1</Lines>
+				<Paragraphs>1</Paragraphs>
+				<ScaleCrop>false</ScaleCrop>
+				<Company>China</Company>
+				<LinksUpToDate>false</LinksUpToDate>
+				<CharactersWithSpaces>37</CharactersWithSpaces>
+				<SharedDoc>false</SharedDoc>
+				<HyperlinksChanged>false</HyperlinksChanged>
+				<AppVersion>12.0000</AppVersion>
+			</Properties>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.ms-word.stylesWithEffects+xml" pkg:name="/word/stylesWithEffects.xml">
+		<pkg:xmlData>
+			<w:styles mc:Ignorable="w14 wp14" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+				<w:docDefaults>
+					<w:rPrDefault>
+						<w:rPr>
+							<w:rFonts w:asciiTheme="minorHAnsi" w:cstheme="minorBidi" w:eastAsiaTheme="minorEastAsia" w:hAnsiTheme="minorHAnsi"/>
+							<w:kern w:val="2"/>
+							<w:sz w:val="21"/>
+							<w:szCs w:val="22"/>
+							<w:lang w:bidi="ar-SA" w:eastAsia="zh-CN" w:val="en-US"/>
+						</w:rPr>
+					</w:rPrDefault>
+					<w:pPrDefault/>
+				</w:docDefaults>
+				<w:latentStyles w:count="267" w:defLockedState="0" w:defQFormat="0" w:defSemiHidden="1" w:defUIPriority="99" w:defUnhideWhenUsed="1">
+					<w:lsdException w:name="Normal" w:qFormat="1" w:semiHidden="0" w:uiPriority="0" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 1" w:qFormat="1" w:semiHidden="0" w:uiPriority="9" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 2" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 3" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 4" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 5" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 6" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 7" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 8" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 9" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="toc 1" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 2" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 3" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 4" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 5" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 6" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 7" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 8" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 9" w:uiPriority="39"/>
+					<w:lsdException w:name="caption" w:qFormat="1" w:uiPriority="35"/>
+					<w:lsdException w:name="Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="10" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Default Paragraph Font" w:uiPriority="1"/>
+					<w:lsdException w:name="Subtitle" w:qFormat="1" w:semiHidden="0" w:uiPriority="11" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Strong" w:qFormat="1" w:semiHidden="0" w:uiPriority="22" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="20" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Table Grid" w:semiHidden="0" w:uiPriority="59" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Placeholder Text" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="No Spacing" w:qFormat="1" w:semiHidden="0" w:uiPriority="1" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 1" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 1" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 1" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 1" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Revision" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="List Paragraph" w:qFormat="1" w:semiHidden="0" w:uiPriority="34" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="29" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="30" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 1" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 1" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 1" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 1" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 1" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 1" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 1" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 2" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 2" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 2" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 2" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 2" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 2" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 2" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 2" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 2" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 2" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 2" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 3" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 3" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 3" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 3" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 3" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 3" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 3" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 3" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 3" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 3" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 3" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 3" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 3" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 4" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 4" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 4" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 4" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 4" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 4" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 4" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 4" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 4" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 4" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 4" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 4" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 4" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 4" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 5" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 5" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 5" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 5" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 5" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 5" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 5" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 5" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 5" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 5" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 5" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 5" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 5" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 5" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 6" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 6" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 6" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 6" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 6" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 6" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 6" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 6" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 6" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 6" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 6" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 6" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 6" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 6" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="19" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="21" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="31" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="32" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Book Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="33" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Bibliography" w:uiPriority="37"/>
+					<w:lsdException w:name="TOC Heading" w:qFormat="1" w:uiPriority="39"/>
+				</w:latentStyles>
+				<w:style w:default="1" w:styleId="a" w:type="paragraph">
+					<w:name w:val="Normal"/>
+					<w:qFormat/>
+					<w:pPr>
+						<w:widowControl w:val="0"/>
+						<w:jc w:val="both"/>
+					</w:pPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a0" w:type="character">
+					<w:name w:val="Default Paragraph Font"/>
+					<w:uiPriority w:val="1"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:default="1" w:styleId="a1" w:type="table">
+					<w:name w:val="Normal Table"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a2" w:type="numbering">
+					<w:name w:val="No List"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+			</w:styles>
+		</pkg:xmlData>
+	</pkg:part>
+</pkg:package>

+ 1452 - 0
cqb-comm-utils/src/main/resources/tjdx_outline_paper_template.ftl

@@ -0,0 +1,1452 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:name="/_rels/.rels" pkg:padding="512">
+		<pkg:xmlData>
+			<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+				<Relationship Id="rId3" Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"/>
+				<Relationship Id="rId2" Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties"/>
+				<Relationship Id="rId1" Target="word/document.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"/>
+			</Relationships>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:name="/word/_rels/document.xml.rels" pkg:padding="256">
+		<pkg:xmlData>
+			<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
+				<Relationship Id="rId8" Target="fontTable.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"/>
+				<Relationship Id="rId3" Target="settings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings"/>
+				<Relationship Id="rId7" Target="footer1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"/>
+				<Relationship Id="rId2" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"/>
+				<Relationship Id="rId1" Target="numbering.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"/>
+				<Relationship Id="rId6" Target="endnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes"/>
+				<Relationship Id="rId5" Target="footnotes.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"/>
+				<Relationship Id="rId10" Target="stylesWithEffects.xml" Type="http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects"/>
+				<Relationship Id="rId4" Target="webSettings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"/>
+				<Relationship Id="rId9" Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"/>
+			</Relationships>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" pkg:name="/word/document.xml">
+		<pkg:xmlData>
+			<w:document xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:body>
+					<w:p w:rsidP="00165E69" w:rsidR="00D84CD3" w:rsidRDefault="00D84CD3" w:rsidRPr="00D84CD3">
+						<w:pPr>
+							<w:pStyle w:val="a3"/>
+							<w:spacing w:afterLines="50" w:beforeLines="70" w:line="360" w:lineRule="auto"/>
+							<w:rPr>
+								<w:b/>
+								<w:sz w:val="48"/>
+								<w:szCs w:val="48"/>
+							</w:rPr>
+						</w:pPr>
+						<w:r w:rsidRPr="00D84CD3">
+							<w:rPr>
+								<w:rFonts w:hint="eastAsia"/>
+								<w:b/>
+								<w:sz w:val="48"/>
+								<w:szCs w:val="48"/>
+							</w:rPr>
+							<w:t>天津大学网络教育学院试卷</w:t>
+						</w:r>
+					</w:p>
+					<w:tbl>
+						<w:tblPr>
+							<w:tblStyle w:val="a6"/>
+							<w:tblW w:type="auto" w:w="0"/>
+							<w:tblBorders>
+								<w:top w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:left w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:bottom w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:right w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:insideH w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+								<w:insideV w:color="auto" w:space="0" w:sz="0" w:val="none"/>
+							</w:tblBorders>
+							<w:tblLook w:val="04A0"/>
+						</w:tblPr>
+						<w:tblGrid>
+							<w:gridCol w:w="8188"/>
+						</w:tblGrid>
+						<w:tr w:rsidR="00FD1FAC" w:rsidRPr="00D84CD3" w:rsidTr="00FD1FAC">
+							<w:tc>
+								<w:tcPr>
+									<w:tcW w:type="dxa" w:w="8188"/>
+									<w:vAlign w:val="center"/>
+								</w:tcPr>
+								<w:p w:rsidP="00FD1FAC" w:rsidR="00FD1FAC" w:rsidRDefault="00FD1FAC" w:rsidRPr="00D84CD3">
+									<w:pPr>
+										<w:pStyle w:val="a3"/>
+										<w:spacing w:line="360" w:lineRule="auto"/>
+										<w:jc w:val="both"/>
+										<w:rPr>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+									</w:pPr>
+									<w:r>
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>课程名称</w:t>
+									</w:r>
+									<w:r w:rsidRPr="00D84CD3">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>:</w:t>
+									</w:r>
+									<w:proofErr w:type="spellStart"/>
+									<w:r w:rsidR="007B12E2">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>${courseName}</w:t>
+									</w:r>
+									<w:proofErr w:type="spellEnd"/>
+								</w:p>
+							</w:tc>
+						</w:tr>
+						<w:tr w:rsidR="00FD1FAC" w:rsidRPr="00D84CD3" w:rsidTr="00FD1FAC">
+							<w:tc>
+								<w:tcPr>
+									<w:tcW w:type="dxa" w:w="8188"/>
+									<w:vAlign w:val="center"/>
+								</w:tcPr>
+								<w:p w:rsidP="00FD1FAC" w:rsidR="00FD1FAC" w:rsidRDefault="00FD1FAC" w:rsidRPr="00D84CD3">
+									<w:pPr>
+										<w:pStyle w:val="a3"/>
+										<w:spacing w:line="360" w:lineRule="auto"/>
+										<w:jc w:val="both"/>
+										<w:rPr>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+									</w:pPr>
+									<w:r>
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>课程代码</w:t>
+									</w:r>
+									<w:r w:rsidRPr="00D84CD3">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>:</w:t>
+									</w:r>
+									<w:proofErr w:type="spellStart"/>
+									<w:r w:rsidR="007B12E2">
+										<w:rPr>
+											<w:rFonts w:hint="eastAsia"/>
+											<w:sz w:val="24"/>
+											<w:szCs w:val="24"/>
+										</w:rPr>
+										<w:t>${courseNo}</w:t>
+									</w:r>
+									<w:proofErr w:type="spellEnd"/>
+								</w:p>
+							</w:tc>
+						</w:tr>
+					</w:tbl>
+					<w:p w:rsidP="009A4B1A" w:rsidR="00E16E16" w:rsidRDefault="00E16E16" w:rsidRPr="00D84CD3">
+						<w:pPr>
+							<w:spacing w:line="360" w:lineRule="auto"/>
+							<w:rPr>
+								<w:szCs w:val="21"/>
+							</w:rPr>
+						</w:pPr>
+						<w:bookmarkStart w:id="0" w:name="_GoBack"/>
+						<w:bookmarkEnd w:id="0"/>
+					</w:p>
+				<!--循环大题-->
+	    <#if paperDetails?exists>
+	    <#list paperDetails as paperDetail>
+		<w:p w:rsidP="004D3783" w:rsidR="00687CD1" w:rsidRDefault="004D3783" w:rsidRPr="006E2D68">
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.cnNum}</w:t>
+			</w:r>
+			 <w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>、</w:t>
+			</w:r>
+	        <w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.name}</w:t>
+			</w:r>
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.title}</w:t>
+			</w:r>
+		</w:p>
+		<#if paperDetail.titleDetail?exists>
+		<w:p w:rsidP="00F964A2" w:rsidR="00F964A2" w:rsidRDefault="004D3783">
+			<w:pPr>
+				<w:ind w:firstLine="420" w:left="100"/>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+			</w:pPr>
+			<w:r>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t>${paperDetail.titleDetail}</w:t>
+			</w:r>
+			<w:r w:rsidR="00F964A2">
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
+					<w:b/>
+					<w:szCs w:val="21"/>
+				</w:rPr>
+				<w:t xml:space="preserve"/>
+			</w:r>
+		</w:p>
+		</#if>
+	 	<!--循环小题-->
+	    <#if paperDetail.paperDetailUnits?exists>
+	    <#list paperDetail.paperDetailUnits as paperDetailUnit>
+	        ${paperDetailUnit.question.quesBodyWord}
+	    <#if paperDetailUnit.question.subQuestions?exists>
+	    <#list paperDetailUnit.question.subQuestions as subQuestion>
+	
+	        ${subQuestion.quesBodyWord}
+	
+	        <#if subQuestion.quesOptions?exists>
+	        <#list subQuestion.quesOptions as subQuesOption>
+	            ${subQuesOption.optionBodyWord}
+	        </#list>
+	        </#if>
+	    </#list>
+	    </#if>
+	
+	    <#if paperDetailUnit.question.quesOptions?exists>
+	    <#list paperDetailUnit.question.quesOptions as quesOption>
+	        ${quesOption.optionBodyWord}
+	     </#list>
+	    </#if>
+		<w:p w:rsidP="00852887" w:rsidR="00852887" w:rsidRDefault="00852887">
+			<w:pPr>
+				<w:spacing w:line="400" w:lineRule="exact"/>
+				<w:rPr>
+					<w:rFonts w:ascii="宋体" w:hAnsi="宋体"/>
+					<w:b/>
+					<w:sz w:val="28"/>
+					<w:szCs w:val="28"/>
+				</w:rPr>
+			</w:pPr>
+		</w:p>
+		</#list>
+	    </#if>
+	    </#list>
+	    </#if>
+					<w:sectPr w:rsidR="004351E4" w:rsidRPr="001673EE" w:rsidSect="00743EA7">
+						<w:footerReference r:id="rId7" w:type="default"/>
+						<w:pgSz w:h="16838" w:w="11906"/>
+						<w:pgMar w:bottom="1440" w:footer="992" w:gutter="0" w:header="851" w:left="1800" w:right="1800" w:top="1440"/>
+						<w:cols w:space="425"/>
+						<w:docGrid w:linePitch="312" w:type="lines"/>
+					</w:sectPr>
+				</w:body>
+			</w:document>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" pkg:name="/word/footnotes.xml">
+		<pkg:xmlData>
+			<w:footnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:footnote w:id="-1" w:type="separator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:separator/>
+						</w:r>
+					</w:p>
+				</w:footnote>
+				<w:footnote w:id="0" w:type="continuationSeparator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:continuationSeparator/>
+						</w:r>
+					</w:p>
+				</w:footnote>
+			</w:footnotes>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" pkg:name="/word/endnotes.xml">
+		<pkg:xmlData>
+			<w:endnotes xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:endnote w:id="-1" w:type="separator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:separator/>
+						</w:r>
+					</w:p>
+				</w:endnote>
+				<w:endnote w:id="0" w:type="continuationSeparator">
+					<w:p w:rsidP="004B68A5" w:rsidR="00DA2FA2" w:rsidRDefault="00DA2FA2">
+						<w:r>
+							<w:continuationSeparator/>
+						</w:r>
+					</w:p>
+				</w:endnote>
+			</w:endnotes>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" pkg:name="/word/footer1.xml">
+		<pkg:xmlData>
+			<w:ftr xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:sdt>
+					<w:sdtPr>
+						<w:id w:val="9293955"/>
+						<w:docPartObj>
+							<w:docPartGallery w:val="Page Numbers (Bottom of Page)"/>
+							<w:docPartUnique/>
+						</w:docPartObj>
+					</w:sdtPr>
+					<w:sdtContent>
+						<w:p w:rsidR="004B68A5" w:rsidRDefault="000210CF">
+							<w:pPr>
+								<w:pStyle w:val="a4"/>
+								<w:jc w:val="center"/>
+							</w:pPr>
+							<w:r>
+								<w:fldChar w:fldCharType="begin"/>
+							</w:r>
+							<w:r w:rsidR="003734D1">
+								<w:instrText xml:space="preserve">PAGE  \* ArabicDash  \* MERGEFORMAT </w:instrText>
+							</w:r>
+							<w:r>
+								<w:fldChar w:fldCharType="separate"/>
+							</w:r>
+							<w:r w:rsidR="007B12E2">
+								<w:rPr>
+									<w:noProof/>
+								</w:rPr>
+								<w:t>- 1 -</w:t>
+							</w:r>
+							<w:r>
+								<w:rPr>
+									<w:noProof/>
+								</w:rPr>
+								<w:fldChar w:fldCharType="end"/>
+							</w:r>
+						</w:p>
+					</w:sdtContent>
+				</w:sdt>
+				<w:p w:rsidR="004B68A5" w:rsidRDefault="004B68A5">
+					<w:pPr>
+						<w:pStyle w:val="a4"/>
+					</w:pPr>
+				</w:p>
+			</w:ftr>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.theme+xml" pkg:name="/word/theme/theme1.xml">
+		<pkg:xmlData>
+			<a:theme name="Office 主题" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
+				<a:themeElements>
+					<a:clrScheme name="Office">
+						<a:dk1>
+							<a:sysClr lastClr="000000" val="windowText"/>
+						</a:dk1>
+						<a:lt1>
+							<a:sysClr lastClr="FFFFFF" val="window"/>
+						</a:lt1>
+						<a:dk2>
+							<a:srgbClr val="1F497D"/>
+						</a:dk2>
+						<a:lt2>
+							<a:srgbClr val="EEECE1"/>
+						</a:lt2>
+						<a:accent1>
+							<a:srgbClr val="4F81BD"/>
+						</a:accent1>
+						<a:accent2>
+							<a:srgbClr val="C0504D"/>
+						</a:accent2>
+						<a:accent3>
+							<a:srgbClr val="9BBB59"/>
+						</a:accent3>
+						<a:accent4>
+							<a:srgbClr val="8064A2"/>
+						</a:accent4>
+						<a:accent5>
+							<a:srgbClr val="4BACC6"/>
+						</a:accent5>
+						<a:accent6>
+							<a:srgbClr val="F79646"/>
+						</a:accent6>
+						<a:hlink>
+							<a:srgbClr val="0000FF"/>
+						</a:hlink>
+						<a:folHlink>
+							<a:srgbClr val="800080"/>
+						</a:folHlink>
+					</a:clrScheme>
+					<a:fontScheme name="Office">
+						<a:majorFont>
+							<a:latin typeface="Cambria"/>
+							<a:ea typeface=""/>
+							<a:cs typeface=""/>
+							<a:font script="Jpan" typeface="MS ゴシック"/>
+							<a:font script="Hang" typeface="맑은 고딕"/>
+							<a:font script="Hans" typeface="宋体"/>
+							<a:font script="Hant" typeface="新細明體"/>
+							<a:font script="Arab" typeface="Times New Roman"/>
+							<a:font script="Hebr" typeface="Times New Roman"/>
+							<a:font script="Thai" typeface="Angsana New"/>
+							<a:font script="Ethi" typeface="Nyala"/>
+							<a:font script="Beng" typeface="Vrinda"/>
+							<a:font script="Gujr" typeface="Shruti"/>
+							<a:font script="Khmr" typeface="MoolBoran"/>
+							<a:font script="Knda" typeface="Tunga"/>
+							<a:font script="Guru" typeface="Raavi"/>
+							<a:font script="Cans" typeface="Euphemia"/>
+							<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+							<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+							<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+							<a:font script="Thaa" typeface="MV Boli"/>
+							<a:font script="Deva" typeface="Mangal"/>
+							<a:font script="Telu" typeface="Gautami"/>
+							<a:font script="Taml" typeface="Latha"/>
+							<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+							<a:font script="Orya" typeface="Kalinga"/>
+							<a:font script="Mlym" typeface="Kartika"/>
+							<a:font script="Laoo" typeface="DokChampa"/>
+							<a:font script="Sinh" typeface="Iskoola Pota"/>
+							<a:font script="Mong" typeface="Mongolian Baiti"/>
+							<a:font script="Viet" typeface="Times New Roman"/>
+							<a:font script="Uigh" typeface="Microsoft Uighur"/>
+						</a:majorFont>
+						<a:minorFont>
+							<a:latin typeface="Calibri"/>
+							<a:ea typeface=""/>
+							<a:cs typeface=""/>
+							<a:font script="Jpan" typeface="MS 明朝"/>
+							<a:font script="Hang" typeface="맑은 고딕"/>
+							<a:font script="Hans" typeface="宋体"/>
+							<a:font script="Hant" typeface="新細明體"/>
+							<a:font script="Arab" typeface="Arial"/>
+							<a:font script="Hebr" typeface="Arial"/>
+							<a:font script="Thai" typeface="Cordia New"/>
+							<a:font script="Ethi" typeface="Nyala"/>
+							<a:font script="Beng" typeface="Vrinda"/>
+							<a:font script="Gujr" typeface="Shruti"/>
+							<a:font script="Khmr" typeface="DaunPenh"/>
+							<a:font script="Knda" typeface="Tunga"/>
+							<a:font script="Guru" typeface="Raavi"/>
+							<a:font script="Cans" typeface="Euphemia"/>
+							<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+							<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+							<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+							<a:font script="Thaa" typeface="MV Boli"/>
+							<a:font script="Deva" typeface="Mangal"/>
+							<a:font script="Telu" typeface="Gautami"/>
+							<a:font script="Taml" typeface="Latha"/>
+							<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+							<a:font script="Orya" typeface="Kalinga"/>
+							<a:font script="Mlym" typeface="Kartika"/>
+							<a:font script="Laoo" typeface="DokChampa"/>
+							<a:font script="Sinh" typeface="Iskoola Pota"/>
+							<a:font script="Mong" typeface="Mongolian Baiti"/>
+							<a:font script="Viet" typeface="Arial"/>
+							<a:font script="Uigh" typeface="Microsoft Uighur"/>
+						</a:minorFont>
+					</a:fontScheme>
+					<a:fmtScheme name="Office">
+						<a:fillStyleLst>
+							<a:solidFill>
+								<a:schemeClr val="phClr"/>
+							</a:solidFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="50000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="35000">
+										<a:schemeClr val="phClr">
+											<a:tint val="37000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:tint val="15000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:lin ang="16200000" scaled="1"/>
+							</a:gradFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:shade val="51000"/>
+											<a:satMod val="130000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="80000">
+										<a:schemeClr val="phClr">
+											<a:shade val="93000"/>
+											<a:satMod val="130000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="94000"/>
+											<a:satMod val="135000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:lin ang="16200000" scaled="0"/>
+							</a:gradFill>
+						</a:fillStyleLst>
+						<a:lnStyleLst>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="9525">
+								<a:solidFill>
+									<a:schemeClr val="phClr">
+										<a:shade val="95000"/>
+										<a:satMod val="105000"/>
+									</a:schemeClr>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="25400">
+								<a:solidFill>
+									<a:schemeClr val="phClr"/>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+							<a:ln algn="ctr" cap="flat" cmpd="sng" w="38100">
+								<a:solidFill>
+									<a:schemeClr val="phClr"/>
+								</a:solidFill>
+								<a:prstDash val="solid"/>
+							</a:ln>
+						</a:lnStyleLst>
+						<a:effectStyleLst>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="20000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="38000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+							</a:effectStyle>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="23000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="35000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+							</a:effectStyle>
+							<a:effectStyle>
+								<a:effectLst>
+									<a:outerShdw blurRad="40000" dir="5400000" dist="23000" rotWithShape="0">
+										<a:srgbClr val="000000">
+											<a:alpha val="35000"/>
+										</a:srgbClr>
+									</a:outerShdw>
+								</a:effectLst>
+								<a:scene3d>
+									<a:camera prst="orthographicFront">
+										<a:rot lat="0" lon="0" rev="0"/>
+									</a:camera>
+									<a:lightRig dir="t" rig="threePt">
+										<a:rot lat="0" lon="0" rev="1200000"/>
+									</a:lightRig>
+								</a:scene3d>
+								<a:sp3d>
+									<a:bevelT h="25400" w="63500"/>
+								</a:sp3d>
+							</a:effectStyle>
+						</a:effectStyleLst>
+						<a:bgFillStyleLst>
+							<a:solidFill>
+								<a:schemeClr val="phClr"/>
+							</a:solidFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="40000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="40000">
+										<a:schemeClr val="phClr">
+											<a:tint val="45000"/>
+											<a:shade val="99000"/>
+											<a:satMod val="350000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="20000"/>
+											<a:satMod val="255000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:path path="circle">
+									<a:fillToRect b="180000" l="50000" r="50000" t="-80000"/>
+								</a:path>
+							</a:gradFill>
+							<a:gradFill rotWithShape="1">
+								<a:gsLst>
+									<a:gs pos="0">
+										<a:schemeClr val="phClr">
+											<a:tint val="80000"/>
+											<a:satMod val="300000"/>
+										</a:schemeClr>
+									</a:gs>
+									<a:gs pos="100000">
+										<a:schemeClr val="phClr">
+											<a:shade val="30000"/>
+											<a:satMod val="200000"/>
+										</a:schemeClr>
+									</a:gs>
+								</a:gsLst>
+								<a:path path="circle">
+									<a:fillToRect b="50000" l="50000" r="50000" t="50000"/>
+								</a:path>
+							</a:gradFill>
+						</a:bgFillStyleLst>
+					</a:fmtScheme>
+				</a:themeElements>
+				<a:objectDefaults/>
+				<a:extraClrSchemeLst/>
+			</a:theme>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" pkg:name="/word/settings.xml">
+		<pkg:xmlData>
+			<w:settings xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word">
+				<w:zoom w:percent="100"/>
+				<w:bordersDoNotSurroundHeader/>
+				<w:bordersDoNotSurroundFooter/>
+				<w:proofState w:spelling="clean"/>
+				<w:defaultTabStop w:val="420"/>
+				<w:drawingGridVerticalSpacing w:val="156"/>
+				<w:displayHorizontalDrawingGridEvery w:val="0"/>
+				<w:displayVerticalDrawingGridEvery w:val="2"/>
+				<w:characterSpacingControl w:val="compressPunctuation"/>
+				<w:hdrShapeDefaults>
+					<o:shapedefaults spidmax="17410" v:ext="edit"/>
+				</w:hdrShapeDefaults>
+				<w:footnotePr>
+					<w:footnote w:id="-1"/>
+					<w:footnote w:id="0"/>
+				</w:footnotePr>
+				<w:endnotePr>
+					<w:endnote w:id="-1"/>
+					<w:endnote w:id="0"/>
+				</w:endnotePr>
+				<w:compat>
+					<w:spaceForUL/>
+					<w:balanceSingleByteDoubleByteWidth/>
+					<w:doNotLeaveBackslashAlone/>
+					<w:ulTrailSpace/>
+					<w:doNotExpandShiftReturn/>
+					<w:adjustLineHeightInTable/>
+					<w:useFELayout/>
+				</w:compat>
+				<w:rsids>
+					<w:rsidRoot w:val="004B68A5"/>
+					<w:rsid w:val="000210CF"/>
+					<w:rsid w:val="00054219"/>
+					<w:rsid w:val="000D7C3A"/>
+					<w:rsid w:val="00165E69"/>
+					<w:rsid w:val="001673EE"/>
+					<w:rsid w:val="001C47CA"/>
+					<w:rsid w:val="001E65F0"/>
+					<w:rsid w:val="001F7B66"/>
+					<w:rsid w:val="00226FD3"/>
+					<w:rsid w:val="002B7A65"/>
+					<w:rsid w:val="002F60CE"/>
+					<w:rsid w:val="00341136"/>
+					<w:rsid w:val="00353D3B"/>
+					<w:rsid w:val="003734D1"/>
+					<w:rsid w:val="003B077D"/>
+					<w:rsid w:val="004061C1"/>
+					<w:rsid w:val="004351E4"/>
+					<w:rsid w:val="00495DDC"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rsid w:val="004D48D3"/>
+					<w:rsid w:val="00507EF6"/>
+					<w:rsid w:val="00534BFA"/>
+					<w:rsid w:val="00694DCE"/>
+					<w:rsid w:val="006B5AFA"/>
+					<w:rsid w:val="00743EA7"/>
+					<w:rsid w:val="007B12E2"/>
+					<w:rsid w:val="00966C6E"/>
+					<w:rsid w:val="009A4B1A"/>
+					<w:rsid w:val="009E5655"/>
+					<w:rsid w:val="00A04C43"/>
+					<w:rsid w:val="00A15C02"/>
+					<w:rsid w:val="00A64592"/>
+					<w:rsid w:val="00B161D7"/>
+					<w:rsid w:val="00B91160"/>
+					<w:rsid w:val="00C4688F"/>
+					<w:rsid w:val="00C507B2"/>
+					<w:rsid w:val="00C74A36"/>
+					<w:rsid w:val="00C84AFA"/>
+					<w:rsid w:val="00C9467E"/>
+					<w:rsid w:val="00CA2CA5"/>
+					<w:rsid w:val="00D8220C"/>
+					<w:rsid w:val="00D84CD3"/>
+					<w:rsid w:val="00DA2FA2"/>
+					<w:rsid w:val="00E16E16"/>
+					<w:rsid w:val="00E2553D"/>
+					<w:rsid w:val="00EF5B9E"/>
+					<w:rsid w:val="00F95F42"/>
+					<w:rsid w:val="00FD1FAC"/>
+				</w:rsids>
+				<m:mathPr>
+					<m:mathFont m:val="Cambria Math"/>
+					<m:brkBin m:val="before"/>
+					<m:brkBinSub m:val="--"/>
+					<m:smallFrac/>
+					<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:themeFontLang w:eastAsia="zh-CN" w:val="en-US"/>
+				<w:clrSchemeMapping w:accent1="accent1" w:accent2="accent2" w:accent3="accent3" w:accent4="accent4" w:accent5="accent5" w:accent6="accent6" w:bg1="light1" w:bg2="light2" w:followedHyperlink="followedHyperlink" w:hyperlink="hyperlink" w:t1="dark1" w:t2="dark2"/>
+				<w:shapeDefaults>
+					<o:shapedefaults spidmax="17410" v:ext="edit"/>
+					<o:shapelayout v:ext="edit">
+						<o:idmap data="1" v:ext="edit"/>
+					</o:shapelayout>
+				</w:shapeDefaults>
+				<w:decimalSymbol w:val="."/>
+				<w:listSeparator w:val=","/>
+			</w:settings>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" pkg:name="/word/webSettings.xml">
+		<pkg:xmlData>
+			<w:webSettings xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:optimizeForBrowser/>
+			</w:webSettings>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" pkg:name="/word/styles.xml">
+		<pkg:xmlData>
+			<w:styles xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:docDefaults>
+					<w:rPrDefault>
+						<w:rPr>
+							<w:rFonts w:asciiTheme="minorHAnsi" w:cstheme="minorBidi" w:eastAsiaTheme="minorEastAsia" w:hAnsiTheme="minorHAnsi"/>
+							<w:kern w:val="2"/>
+							<w:sz w:val="21"/>
+							<w:szCs w:val="22"/>
+							<w:lang w:bidi="ar-SA" w:eastAsia="zh-CN" w:val="en-US"/>
+						</w:rPr>
+					</w:rPrDefault>
+					<w:pPrDefault/>
+				</w:docDefaults>
+				<w:latentStyles w:count="267" w:defLockedState="0" w:defQFormat="0" w:defSemiHidden="1" w:defUIPriority="99" w:defUnhideWhenUsed="1">
+					<w:lsdException w:name="Normal" w:qFormat="1" w:semiHidden="0" w:uiPriority="0" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 1" w:qFormat="1" w:semiHidden="0" w:uiPriority="9" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 2" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 3" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 4" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 5" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 6" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 7" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 8" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 9" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="toc 1" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 2" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 3" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 4" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 5" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 6" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 7" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 8" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 9" w:uiPriority="39"/>
+					<w:lsdException w:name="caption" w:qFormat="1" w:uiPriority="35"/>
+					<w:lsdException w:name="Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="10" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Default Paragraph Font" w:uiPriority="1"/>
+					<w:lsdException w:name="Subtitle" w:qFormat="1" w:semiHidden="0" w:uiPriority="11" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Strong" w:qFormat="1" w:semiHidden="0" w:uiPriority="22" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="20" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Table Grid" w:semiHidden="0" w:uiPriority="59" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Placeholder Text" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="No Spacing" w:qFormat="1" w:semiHidden="0" w:uiPriority="1" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 1" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 1" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 1" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 1" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Revision" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="List Paragraph" w:qFormat="1" w:semiHidden="0" w:uiPriority="34" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="29" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="30" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 1" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 1" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 1" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 1" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 1" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 1" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 1" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 2" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 2" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 2" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 2" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 2" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 2" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 2" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 2" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 2" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 2" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 2" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 3" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 3" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 3" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 3" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 3" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 3" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 3" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 3" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 3" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 3" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 3" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 3" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 3" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 4" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 4" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 4" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 4" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 4" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 4" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 4" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 4" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 4" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 4" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 4" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 4" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 4" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 4" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 5" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 5" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 5" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 5" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 5" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 5" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 5" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 5" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 5" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 5" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 5" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 5" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 5" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 5" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 6" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 6" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 6" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 6" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 6" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 6" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 6" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 6" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 6" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 6" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 6" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 6" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 6" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 6" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="19" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="21" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="31" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="32" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Book Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="33" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Bibliography" w:uiPriority="37"/>
+					<w:lsdException w:name="TOC Heading" w:qFormat="1" w:uiPriority="39"/>
+				</w:latentStyles>
+				<w:style w:default="1" w:styleId="a" w:type="paragraph">
+					<w:name w:val="Normal"/>
+					<w:qFormat/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:widowControl w:val="0"/>
+						<w:jc w:val="both"/>
+					</w:pPr>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:szCs w:val="24"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a0" w:type="character">
+					<w:name w:val="Default Paragraph Font"/>
+					<w:uiPriority w:val="1"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:default="1" w:styleId="a1" w:type="table">
+					<w:name w:val="Normal Table"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:qFormat/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a2" w:type="numbering">
+					<w:name w:val="No List"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:styleId="a3" w:type="paragraph">
+					<w:name w:val="header"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char"/>
+					<w:uiPriority w:val="99"/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:tabs>
+							<w:tab w:pos="4153" w:val="center"/>
+							<w:tab w:pos="8306" w:val="right"/>
+						</w:tabs>
+						<w:snapToGrid w:val="0"/>
+						<w:jc w:val="center"/>
+					</w:pPr>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char" w:type="character">
+					<w:name w:val="页眉 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a3"/>
+					<w:uiPriority w:val="99"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a4" w:type="paragraph">
+					<w:name w:val="footer"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char0"/>
+					<w:uiPriority w:val="99"/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:pPr>
+						<w:tabs>
+							<w:tab w:pos="4153" w:val="center"/>
+							<w:tab w:pos="8306" w:val="right"/>
+						</w:tabs>
+						<w:snapToGrid w:val="0"/>
+						<w:jc w:val="left"/>
+					</w:pPr>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char0" w:type="character">
+					<w:name w:val="页脚 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a4"/>
+					<w:uiPriority w:val="99"/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a5" w:type="paragraph">
+					<w:name w:val="Balloon Text"/>
+					<w:basedOn w:val="a"/>
+					<w:link w:val="Char1"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:customStyle="1" w:styleId="Char1" w:type="character">
+					<w:name w:val="批注框文本 Char"/>
+					<w:basedOn w:val="a0"/>
+					<w:link w:val="a5"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:rsid w:val="004B68A5"/>
+					<w:rPr>
+						<w:rFonts w:ascii="Times New Roman" w:cs="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
+						<w:sz w:val="18"/>
+						<w:szCs w:val="18"/>
+					</w:rPr>
+				</w:style>
+				<w:style w:styleId="a6" w:type="table">
+					<w:name w:val="Table Grid"/>
+					<w:basedOn w:val="a1"/>
+					<w:uiPriority w:val="59"/>
+					<w:rsid w:val="00D84CD3"/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblBorders>
+							<w:top w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:left w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:bottom w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:right w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:insideH w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+							<w:insideV w:color="000000" w:space="0" w:sz="4" w:themeColor="text1" w:val="single"/>
+						</w:tblBorders>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:styleId="a7" w:type="paragraph">
+					<w:name w:val="List Paragraph"/>
+					<w:basedOn w:val="a"/>
+					<w:uiPriority w:val="34"/>
+					<w:qFormat/>
+					<w:rsid w:val="009E5655"/>
+					<w:pPr>
+						<w:ind w:firstLine="420" w:firstLineChars="200"/>
+					</w:pPr>
+				</w:style>
+			</w:styles>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" pkg:name="/word/numbering.xml">
+		<pkg:xmlData>
+			<w:numbering xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
+				<w:abstractNum w:abstractNumId="0">
+					<w:nsid w:val="4ACC32A4"/>
+					<w:multiLevelType w:val="hybridMultilevel"/>
+					<w:tmpl w:val="E9C27ABE"/>
+					<w:lvl w:ilvl="0" w:tplc="DA8E2842">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="japaneseCounting"/>
+						<w:lvlText w:val="%1、"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="440" w:left="440"/>
+						</w:pPr>
+						<w:rPr>
+							<w:rFonts w:hint="default"/>
+						</w:rPr>
+					</w:lvl>
+					<w:lvl w:ilvl="1" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%2)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="840"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="2" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%3."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="1260"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="3" w:tentative="1" w:tplc="0409000F">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="decimal"/>
+						<w:lvlText w:val="%4."/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="1680"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="4" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%5)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2100"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="5" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%6."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2520"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="6" w:tentative="1" w:tplc="0409000F">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="decimal"/>
+						<w:lvlText w:val="%7."/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="2940"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="7" w:tentative="1" w:tplc="04090019">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerLetter"/>
+						<w:lvlText w:val="%8)"/>
+						<w:lvlJc w:val="left"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="3360"/>
+						</w:pPr>
+					</w:lvl>
+					<w:lvl w:ilvl="8" w:tentative="1" w:tplc="0409001B">
+						<w:start w:val="1"/>
+						<w:numFmt w:val="lowerRoman"/>
+						<w:lvlText w:val="%9."/>
+						<w:lvlJc w:val="right"/>
+						<w:pPr>
+							<w:ind w:hanging="420" w:left="3780"/>
+						</w:pPr>
+					</w:lvl>
+				</w:abstractNum>
+				<w:num w:numId="1">
+					<w:abstractNumId w:val="0"/>
+				</w:num>
+			</w:numbering>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-package.core-properties+xml" pkg:name="/docProps/core.xml" pkg:padding="256">
+		<pkg:xmlData>
+			<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+				<dc:creator>User</dc:creator>
+				<cp:lastModifiedBy>weiwenhai</cp:lastModifiedBy>
+				<cp:revision>2</cp:revision>
+				<dcterms:created xsi:type="dcterms:W3CDTF">2018-03-05T02:52:00Z</dcterms:created>
+				<dcterms:modified xsi:type="dcterms:W3CDTF">2018-03-05T02:52:00Z</dcterms:modified>
+			</cp:coreProperties>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" pkg:name="/word/fontTable.xml">
+		<pkg:xmlData>
+			<w:fonts xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+				<w:font w:name="Times New Roman">
+					<w:panose1 w:val="02020603050405020304"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="roman"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002EFF" w:usb1="C000785B" w:usb2="00000009" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="Calibri">
+					<w:panose1 w:val="020F0502020204030204"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="swiss"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="000001FF" w:csb1="00000000" w:usb0="E0002AFF" w:usb1="C000247B" w:usb2="00000009" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="宋体">
+					<w:altName w:val="SimSun"/>
+					<w:panose1 w:val="02010600030101010101"/>
+					<w:charset w:val="86"/>
+					<w:family w:val="auto"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="00040001" w:csb1="00000000" w:usb0="00000003" w:usb1="288F0000" w:usb2="00000016" w:usb3="00000000"/>
+				</w:font>
+				<w:font w:name="Cambria">
+					<w:panose1 w:val="02040503050406030204"/>
+					<w:charset w:val="00"/>
+					<w:family w:val="roman"/>
+					<w:pitch w:val="variable"/>
+					<w:sig w:csb0="0000019F" w:csb1="00000000" w:usb0="E00006FF" w:usb1="400004FF" w:usb2="00000000" w:usb3="00000000"/>
+				</w:font>
+			</w:fonts>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" pkg:name="/docProps/app.xml" pkg:padding="256">
+		<pkg:xmlData>
+			<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
+				<Template>Normal.dotm</Template>
+				<TotalTime>0</TotalTime>
+				<Pages>1</Pages>
+				<Words>5</Words>
+				<Characters>33</Characters>
+				<Application>Microsoft Office Word</Application>
+				<DocSecurity>0</DocSecurity>
+				<Lines>1</Lines>
+				<Paragraphs>1</Paragraphs>
+				<ScaleCrop>false</ScaleCrop>
+				<Company>China</Company>
+				<LinksUpToDate>false</LinksUpToDate>
+				<CharactersWithSpaces>37</CharactersWithSpaces>
+				<SharedDoc>false</SharedDoc>
+				<HyperlinksChanged>false</HyperlinksChanged>
+				<AppVersion>12.0000</AppVersion>
+			</Properties>
+		</pkg:xmlData>
+	</pkg:part>
+	<pkg:part pkg:contentType="application/vnd.ms-word.stylesWithEffects+xml" pkg:name="/word/stylesWithEffects.xml">
+		<pkg:xmlData>
+			<w:styles mc:Ignorable="w14 wp14" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
+				<w:docDefaults>
+					<w:rPrDefault>
+						<w:rPr>
+							<w:rFonts w:asciiTheme="minorHAnsi" w:cstheme="minorBidi" w:eastAsiaTheme="minorEastAsia" w:hAnsiTheme="minorHAnsi"/>
+							<w:kern w:val="2"/>
+							<w:sz w:val="21"/>
+							<w:szCs w:val="22"/>
+							<w:lang w:bidi="ar-SA" w:eastAsia="zh-CN" w:val="en-US"/>
+						</w:rPr>
+					</w:rPrDefault>
+					<w:pPrDefault/>
+				</w:docDefaults>
+				<w:latentStyles w:count="267" w:defLockedState="0" w:defQFormat="0" w:defSemiHidden="1" w:defUIPriority="99" w:defUnhideWhenUsed="1">
+					<w:lsdException w:name="Normal" w:qFormat="1" w:semiHidden="0" w:uiPriority="0" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 1" w:qFormat="1" w:semiHidden="0" w:uiPriority="9" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="heading 2" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 3" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 4" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 5" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 6" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 7" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 8" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="heading 9" w:qFormat="1" w:uiPriority="9"/>
+					<w:lsdException w:name="toc 1" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 2" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 3" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 4" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 5" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 6" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 7" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 8" w:uiPriority="39"/>
+					<w:lsdException w:name="toc 9" w:uiPriority="39"/>
+					<w:lsdException w:name="caption" w:qFormat="1" w:uiPriority="35"/>
+					<w:lsdException w:name="Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="10" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Default Paragraph Font" w:uiPriority="1"/>
+					<w:lsdException w:name="Subtitle" w:qFormat="1" w:semiHidden="0" w:uiPriority="11" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Strong" w:qFormat="1" w:semiHidden="0" w:uiPriority="22" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="20" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Table Grid" w:semiHidden="0" w:uiPriority="59" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Placeholder Text" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="No Spacing" w:qFormat="1" w:semiHidden="0" w:uiPriority="1" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 1" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 1" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 1" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 1" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 1" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 1" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Revision" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="List Paragraph" w:qFormat="1" w:semiHidden="0" w:uiPriority="34" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="29" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Quote" w:qFormat="1" w:semiHidden="0" w:uiPriority="30" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 1" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 1" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 1" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 1" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 1" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 1" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 1" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 1" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 2" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 2" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 2" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 2" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 2" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 2" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 2" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 2" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 2" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 2" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 2" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 2" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 2" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 2" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 3" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 3" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 3" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 3" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 3" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 3" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 3" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 3" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 3" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 3" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 3" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 3" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 3" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 3" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 4" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 4" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 4" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 4" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 4" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 4" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 4" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 4" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 4" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 4" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 4" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 4" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 4" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 4" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 5" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 5" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 5" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 5" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 5" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 5" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 5" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 5" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 5" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 5" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 5" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 5" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 5" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 5" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Shading Accent 6" w:semiHidden="0" w:uiPriority="60" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light List Accent 6" w:semiHidden="0" w:uiPriority="61" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Light Grid Accent 6" w:semiHidden="0" w:uiPriority="62" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 1 Accent 6" w:semiHidden="0" w:uiPriority="63" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Shading 2 Accent 6" w:semiHidden="0" w:uiPriority="64" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 1 Accent 6" w:semiHidden="0" w:uiPriority="65" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium List 2 Accent 6" w:semiHidden="0" w:uiPriority="66" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 1 Accent 6" w:semiHidden="0" w:uiPriority="67" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 2 Accent 6" w:semiHidden="0" w:uiPriority="68" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Medium Grid 3 Accent 6" w:semiHidden="0" w:uiPriority="69" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Dark List Accent 6" w:semiHidden="0" w:uiPriority="70" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Shading Accent 6" w:semiHidden="0" w:uiPriority="71" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful List Accent 6" w:semiHidden="0" w:uiPriority="72" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Colorful Grid Accent 6" w:semiHidden="0" w:uiPriority="73" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="19" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Emphasis" w:qFormat="1" w:semiHidden="0" w:uiPriority="21" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Subtle Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="31" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Intense Reference" w:qFormat="1" w:semiHidden="0" w:uiPriority="32" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Book Title" w:qFormat="1" w:semiHidden="0" w:uiPriority="33" w:unhideWhenUsed="0"/>
+					<w:lsdException w:name="Bibliography" w:uiPriority="37"/>
+					<w:lsdException w:name="TOC Heading" w:qFormat="1" w:uiPriority="39"/>
+				</w:latentStyles>
+				<w:style w:default="1" w:styleId="a" w:type="paragraph">
+					<w:name w:val="Normal"/>
+					<w:qFormat/>
+					<w:pPr>
+						<w:widowControl w:val="0"/>
+						<w:jc w:val="both"/>
+					</w:pPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a0" w:type="character">
+					<w:name w:val="Default Paragraph Font"/>
+					<w:uiPriority w:val="1"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+				<w:style w:default="1" w:styleId="a1" w:type="table">
+					<w:name w:val="Normal Table"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+					<w:tblPr>
+						<w:tblInd w:type="dxa" w:w="0"/>
+						<w:tblCellMar>
+							<w:top w:type="dxa" w:w="0"/>
+							<w:left w:type="dxa" w:w="108"/>
+							<w:bottom w:type="dxa" w:w="0"/>
+							<w:right w:type="dxa" w:w="108"/>
+						</w:tblCellMar>
+					</w:tblPr>
+				</w:style>
+				<w:style w:default="1" w:styleId="a2" w:type="numbering">
+					<w:name w:val="No List"/>
+					<w:uiPriority w:val="99"/>
+					<w:semiHidden/>
+					<w:unhideWhenUsed/>
+				</w:style>
+			</w:styles>
+		</pkg:xmlData>
+	</pkg:part>
+</pkg:package>

+ 2 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExportPaperService.java

@@ -15,7 +15,7 @@ public interface ExportPaperService {
 	 * @param exportContentList
 	 * @throws Exception
 	 */
-	public void exportPaperFile(String paperId,String serviceName,String exportContentList,HttpServletResponse response, String loginName)  throws Exception;
+	public void exportPaperFile(String paperId,String serviceName,String exportContentList,HttpServletResponse response, String loginName, String examType)  throws Exception;
 
 	/**
 	 * 批量导出试卷,答案,机考数据包
@@ -26,5 +26,5 @@ public interface ExportPaperService {
 	 * @param loginName
 	 * @throws Exception
 	 */
-	public void exportPaperFiles(List<String> paperList,String serviceName,String exportContentList,HttpServletResponse response, String loginName)  throws Exception;
+	public void exportPaperFiles(List<String> paperList,String serviceName,String exportContentList,HttpServletResponse response, String loginName, String examType)  throws Exception;
 }

+ 330 - 330
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/DzkdExportPaperService.java

@@ -1,330 +1,330 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.dto.PaperDetailExp;
-import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.question.model.Question;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
- * 
- * @author  	chenken
- * @date    	2017年7月31日 上午9:21:51
- * @company 	QMTH
- * @description 电子科技大学导出、上传文件service
- */
-@Service("dzkdExportPaperService")
-public class DzkdExportPaperService extends ExportPaperAbstractService {
-	
-	public void downloadPaper(String paperId,String zipFileName)throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		//电子科大独有
-		setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
-		if(paperExp!=null){
-			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,DZKD_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-	}
-
-	public void downloadPaperAnswer(String paperId,String zipFileName) throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		//电子科大独有
-		setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
-		if(paperExp!=null){
-			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
-			DocxProcessUtil.exportWordNew(paperExp,file,DZKD_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
-		}
-	}
-	
-	/**
-     * 小题排序
-     * @describle 大题排序完成之后,放在一个集合里面。然后对相同类型的大题分组,生成不同的结合,在对小题进行
-     * @param paperDetailExps
-     */
-	@Override
-	public void sortPaperDetailUnitExps(List<PaperDetailExp> paperDetailExps) {
-    	Map<Long,List<PaperDetailUnitExp>> map = new HashMap<Long, List<PaperDetailUnitExp>>();
-    	//循环所有大题,将同类型的小题放到同一个集合下面
-    	int index = 0;
-    	for(PaperDetailExp paperDetailExp:paperDetailExps){
-    		List<PaperDetailUnitExp> paperDetailUnitExps = null;
-    		//单选,多选,判断放在同一集合下排序
-    		if(paperDetailExp.getSortNumber()<5L){
-    			//通过map的key去取value,如果没有,就添加
-        		if(map.get(paperDetailExp.getSortNumber()) == null){
-        			paperDetailUnitExps = new ArrayList<PaperDetailUnitExp>();
-        		}else {
-    				paperDetailUnitExps = map.get(paperDetailExp.getSortNumber());
-    			}
-        		paperDetailUnitExps.addAll(paperDetailExp.getPaperDetailUnits());
-        		map.put(paperDetailExp.getSortNumber(), paperDetailUnitExps);
-    		}else {
-    			paperDetailUnitExps = new ArrayList<PaperDetailUnitExp>();
-    			paperDetailUnitExps.addAll(paperDetailExp.getPaperDetailUnits());
-    			map.put(paperDetailExp.getSortNumber() + index, paperDetailUnitExps);
-    			index++;
-			}
-    	}
-    	//循环所有小题,给小题排序
-    	for(Long sortNumber:map.keySet()){
-    		List<PaperDetailUnitExp> paperDetailUnitExps = map.get(sortNumber);
-    		int number = 1;
-    		if(paperDetailUnitExps != null && paperDetailUnitExps.size()>0){
-    			for(int i = 0;i<paperDetailUnitExps.size();i++){
-    				PaperDetailUnitExp paperDetailUnitExp = paperDetailUnitExps.get(i);
-    				if(paperDetailUnitExp.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION){
-    					List<Question> subQuestions = paperDetailUnitExp.getQuestion().getSubQuestions();
-    					for(int j = 0;j<subQuestions.size();j++){
-    						subQuestions.get(j).setNumber(number+j);
-    					}
-    					number += subQuestions.size();
-    				}else {
-    					paperDetailUnitExp.setNumber(number);
-    					number++;
-					}
-        		}
-    		}
-    	}
-	}
-	
-	/**
-	 * 设置大题标题,并将大题分类  主观题    客观题
-	 * @param paperDetailExps
-	 */
-	@Override
-	public void setExpDtoTitle(List<PaperDetailExp> paperDetailExps) {
-		int firstBlank = 0;
-		int lastBlank = 0;
-		for(PaperDetailExp paperDetailExp:paperDetailExps){
-			String title = "";
-			String titleDetail = null;
-			String totalScore = BigDecimal.valueOf(paperDetailExp.getScore()).stripTrailingZeros().toPlainString();
-			QuesStructType type = paperDetailExp.getPaperDetailUnits().get(0).getQuestionType();
-			String questionScore = checkPaperDetailUnitScore(paperDetailExp);
-			if(questionScore!=null){
-   				questionScore = deletePoint(questionScore);
-   			}
-			String scoreString = questionScore==null?"":"每小题"+questionScore+"分,";
-			if (type == QuesStructType.SINGLE_ANSWER_QUESTION) {
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore + "分)";
-				titleDetail = "在每小题列出的备选项中只有一个符号合题目要求的,请将其选出并将“答题卡”的相应代码涂黑,错涂、多涂或未涂均无分";
-			} else if (type == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore+ "分)";
-				titleDetail = "在每小题列出的备选项中有一个或多个符号合题目要求的,请将符合项选出并将“答题卡”的相应代码涂黑";
-			} else if (type == QuesStructType.BOOL_ANSWER_QUESTION) {
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore+ "分。"
-						+ "正确的填涂A、错误填涂B。错涂、多涂或未涂均无分)";
-			} else if (type == QuesStructType.FILL_BLANK_QUESTION) {
-				//计算填空空格数量
-				int blanksNumbers = blanksNumbers(paperDetailExp);
-				//设置填空题题干中 开始空格  和  结束空格
-				lastBlank = firstBlank +  blanksNumbers;
-				questionScore = checkPaperDetailUnitblanksScore(paperDetailExp);
-				scoreString = questionScore==null?"":"每空"+questionScore+"分,";
-				title = "(本大题共" + blanksNumbers + "个空格,将每空答在答题卡 “" + String.valueOf(firstBlank + 1)
-						+ "—" + String.valueOf(lastBlank) + "”相应的序号上。"+ scoreString + "共" + totalScore+ "分。)";
-				firstBlank = lastBlank;
-			} else {
-				title = "(本大题共"+paperDetailExp.getUnitCount()+"小题,"+scoreString+"共"+totalScore+"分)";
-			}
-			paperDetailExp.setTitle(title);
-			paperDetailExp.setTitleDetail(titleDetail);
-		}
-	}
-	
-	//去掉分数后面的小数点
-  	private String deletePoint(String str) {
-  		if(str.indexOf(".0")>-1){
-  			return str.replace(".0", "");
-  		}
-  		return str;
-  	}
-	
-	/**
-	 * 计算每个大题所有填空题空格数量
-	 * @param paperDetailExp
-	 * @return
-	 */
-	private int blanksNumbers(PaperDetailExp paperDetailExp) {
-		List<PaperDetailUnitExp> paperDetailUnitExps = paperDetailExp.getPaperDetailUnits();
-		int blanksNumbers = 0;
-		for(PaperDetailUnitExp paperDetailUnitExp:paperDetailUnitExps){
-			String str = paperDetailUnitExp.getQuestion().getQuesAnswer();
-			if(str.indexOf("##")>-1){
-				//将所有( 替换为空
-				String str1 = str.replaceAll("##", "");
-				blanksNumbers += ((str.length() - str1.length())/2+1);
-			}else {
-				blanksNumbers += 1;
-			}
-		}
-		return blanksNumbers;
-	}
-	
-	/**
-	 * 计算每个小题所有填空题空格数量
-	 * @param paperDetailExp
-	 * @return
-	 */
-	private int blanksNumbers(PaperDetailUnitExp unitExp) {
-		int blanksNumbers = 0;
-		String str = unitExp.getQuestion().getQuesAnswer();
-		if(str.indexOf("##")>-1){
-			//将所有( 替换为空
-			String str1 = str.replaceAll("##", "");
-			blanksNumbers += ((str.length() - str1.length())/2+1);
-		}else {
-			blanksNumbers += 1;
-		}
-		return blanksNumbers;
-	}
-	
-	/**
-	 * 校验大题下的每个填空题空格分数是否一样
-	 * @param paperDetailExp
-	 * @return  如果分数一样,返回分数
-	 * 			如果分数不一样,返回 null
-	 */
-	protected String checkPaperDetailUnitblanksScore(PaperDetailExp paperDetailExp) {
-		List<PaperDetailUnitExp> paperDetailUnitExps = paperDetailExp.getPaperDetailUnits();
-		Set<Double> scoreSet = new HashSet<Double>();
-		for (PaperDetailUnitExp unitExp : paperDetailUnitExps) {
-			int blanksNumbers = blanksNumbers(unitExp);
-			double everyBlank = unitExp.getScore() / blanksNumbers;
-			scoreSet.add(everyBlank);
-		}
-		if(scoreSet.size() == 1){
-			return scoreSet.iterator().next()+"";
-		}
-		return null;
-	}
-	
-	 /**
-     * 添加主观题与客观题
-     * @param paperDetailExps
-     */
-    public void setSplitPaperDetailExp(PaperExp PaperExp,List<PaperDetailExp> paperDetailExps) {
-		// 客观题
-		List<PaperDetailExp> objectiveDetails = new ArrayList<PaperDetailExp>();
-		// 主观题
-		List<PaperDetailExp> subjectiveDetails = new ArrayList<PaperDetailExp>();
-		for(PaperDetailExp paperDetailExp:paperDetailExps){
-			Long type = paperDetailExp.getSortNumber();
-			if(type < 5L){
-				objectiveDetails.add(paperDetailExp);
-			}else {
-				subjectiveDetails.add(paperDetailExp);
-			}
-		}
-		PaperExp.setObjectiveDetails(objectiveDetails);
-		PaperExp.setSubjectiveDetails(subjectiveDetails);
-		//主观题   客观题的标题显示
-		showTitle(PaperExp);
-	}
-	
-	/**
-	 * 主观题   客观题的标题显示
-	 * @param PaperExp
-	 */
-
-	private void showTitle(PaperExp paperExp) {
-		String title = "";
-		List<PaperDetailExp> objectiveDetails = paperExp.getObjectiveDetails();
-		List<PaperDetailExp> subjectiveDetails = paperExp.getSubjectiveDetails();
-		//设置客观题的标题
-		if(objectiveDetails != null && objectiveDetails.size()>0){
-			Double score = 0.0; 
-			for(PaperDetailExp objectiveDetail:objectiveDetails){
-				score += objectiveDetail.getScore();
-			}
-			String scores = BigDecimal.valueOf(score).stripTrailingZeros().toPlainString();
-			//判断是否有主观题
-			if(subjectiveDetails == null || subjectiveDetails.size() < 1){
-				title = "客观题(总分" + scores + "分)";
-				paperExp.setObjectiveTitle(title);
-			}else {
-				title = "第一部分"+ "    " +"客观题(总分" + scores + "分)";
-			}
-			paperExp.setObjectiveTitle(title);
-		}
-		if(subjectiveDetails != null && subjectiveDetails.size()>0){
-			Double score = 0.0; 
-			for(PaperDetailExp objectiveDetail:subjectiveDetails){
-				score += objectiveDetail.getScore();
-			}
-			String scores = BigDecimal.valueOf(score).stripTrailingZeros().toPlainString();
-			//判断是否有客观题
-			if(objectiveDetails == null || objectiveDetails.size() < 1){
-				title = "主观题(总分" + scores + "分)";
-				paperExp.setSubjectiveTitle(title);
-			}else {
-				title = "第二部分"+ "    " +"主观题(总分" + scores + "分)";
-			}
-			paperExp.setSubjectiveTitle(title);
-		}
-	}
-	
-	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-    	PaperExp paperExp = initPaperExp(paperId);
-    	setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
-        if (paperExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-
-}
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.PaperDetailExp;
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年7月31日 上午9:21:51
+ * @company 	QMTH
+ * @description 电子科技大学导出、上传文件service
+ */
+@Service("dzkdExportPaperService")
+public class DzkdExportPaperService extends ExportPaperAbstractService {
+	
+	public void downloadPaper(String paperId,String zipFileName,String examType)throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		//电子科大独有
+		setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
+		if(paperExp!=null){
+			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			DocxProcessUtil.exportWordNew(paperExp, file,DZKD_TEMPLATE_PAPER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+	}
+
+	public void downloadPaperAnswer(String paperId,String zipFileName) throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		//电子科大独有
+		setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
+		if(paperExp!=null){
+			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
+			DocxProcessUtil.exportWordNew(paperExp,file,DZKD_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
+		}
+	}
+	
+	/**
+     * 小题排序
+     * @describle 大题排序完成之后,放在一个集合里面。然后对相同类型的大题分组,生成不同的结合,在对小题进行
+     * @param paperDetailExps
+     */
+	@Override
+	public void sortPaperDetailUnitExps(List<PaperDetailExp> paperDetailExps) {
+    	Map<Long,List<PaperDetailUnitExp>> map = new HashMap<Long, List<PaperDetailUnitExp>>();
+    	//循环所有大题,将同类型的小题放到同一个集合下面
+    	int index = 0;
+    	for(PaperDetailExp paperDetailExp:paperDetailExps){
+    		List<PaperDetailUnitExp> paperDetailUnitExps = null;
+    		//单选,多选,判断放在同一集合下排序
+    		if(paperDetailExp.getSortNumber()<5L){
+    			//通过map的key去取value,如果没有,就添加
+        		if(map.get(paperDetailExp.getSortNumber()) == null){
+        			paperDetailUnitExps = new ArrayList<PaperDetailUnitExp>();
+        		}else {
+    				paperDetailUnitExps = map.get(paperDetailExp.getSortNumber());
+    			}
+        		paperDetailUnitExps.addAll(paperDetailExp.getPaperDetailUnits());
+        		map.put(paperDetailExp.getSortNumber(), paperDetailUnitExps);
+    		}else {
+    			paperDetailUnitExps = new ArrayList<PaperDetailUnitExp>();
+    			paperDetailUnitExps.addAll(paperDetailExp.getPaperDetailUnits());
+    			map.put(paperDetailExp.getSortNumber() + index, paperDetailUnitExps);
+    			index++;
+			}
+    	}
+    	//循环所有小题,给小题排序
+    	for(Long sortNumber:map.keySet()){
+    		List<PaperDetailUnitExp> paperDetailUnitExps = map.get(sortNumber);
+    		int number = 1;
+    		if(paperDetailUnitExps != null && paperDetailUnitExps.size()>0){
+    			for(int i = 0;i<paperDetailUnitExps.size();i++){
+    				PaperDetailUnitExp paperDetailUnitExp = paperDetailUnitExps.get(i);
+    				if(paperDetailUnitExp.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION){
+    					List<Question> subQuestions = paperDetailUnitExp.getQuestion().getSubQuestions();
+    					for(int j = 0;j<subQuestions.size();j++){
+    						subQuestions.get(j).setNumber(number+j);
+    					}
+    					number += subQuestions.size();
+    				}else {
+    					paperDetailUnitExp.setNumber(number);
+    					number++;
+					}
+        		}
+    		}
+    	}
+	}
+	
+	/**
+	 * 设置大题标题,并将大题分类  主观题    客观题
+	 * @param paperDetailExps
+	 */
+	@Override
+	public void setExpDtoTitle(List<PaperDetailExp> paperDetailExps) {
+		int firstBlank = 0;
+		int lastBlank = 0;
+		for(PaperDetailExp paperDetailExp:paperDetailExps){
+			String title = "";
+			String titleDetail = null;
+			String totalScore = BigDecimal.valueOf(paperDetailExp.getScore()).stripTrailingZeros().toPlainString();
+			QuesStructType type = paperDetailExp.getPaperDetailUnits().get(0).getQuestionType();
+			String questionScore = checkPaperDetailUnitScore(paperDetailExp);
+			if(questionScore!=null){
+   				questionScore = deletePoint(questionScore);
+   			}
+			String scoreString = questionScore==null?"":"每小题"+questionScore+"分,";
+			if (type == QuesStructType.SINGLE_ANSWER_QUESTION) {
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore + "分)";
+				titleDetail = "在每小题列出的备选项中只有一个符号合题目要求的,请将其选出并将“答题卡”的相应代码涂黑,错涂、多涂或未涂均无分";
+			} else if (type == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore+ "分)";
+				titleDetail = "在每小题列出的备选项中有一个或多个符号合题目要求的,请将符合项选出并将“答题卡”的相应代码涂黑";
+			} else if (type == QuesStructType.BOOL_ANSWER_QUESTION) {
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore+ "分。"
+						+ "正确的填涂A、错误填涂B。错涂、多涂或未涂均无分)";
+			} else if (type == QuesStructType.FILL_BLANK_QUESTION) {
+				//计算填空空格数量
+				int blanksNumbers = blanksNumbers(paperDetailExp);
+				//设置填空题题干中 开始空格  和  结束空格
+				lastBlank = firstBlank +  blanksNumbers;
+				questionScore = checkPaperDetailUnitblanksScore(paperDetailExp);
+				scoreString = questionScore==null?"":"每空"+questionScore+"分,";
+				title = "(本大题共" + blanksNumbers + "个空格,将每空答在答题卡 “" + String.valueOf(firstBlank + 1)
+						+ "—" + String.valueOf(lastBlank) + "”相应的序号上。"+ scoreString + "共" + totalScore+ "分。)";
+				firstBlank = lastBlank;
+			} else {
+				title = "(本大题共"+paperDetailExp.getUnitCount()+"小题,"+scoreString+"共"+totalScore+"分)";
+			}
+			paperDetailExp.setTitle(title);
+			paperDetailExp.setTitleDetail(titleDetail);
+		}
+	}
+	
+	//去掉分数后面的小数点
+  	private String deletePoint(String str) {
+  		if(str.indexOf(".0")>-1){
+  			return str.replace(".0", "");
+  		}
+  		return str;
+  	}
+	
+	/**
+	 * 计算每个大题所有填空题空格数量
+	 * @param paperDetailExp
+	 * @return
+	 */
+	private int blanksNumbers(PaperDetailExp paperDetailExp) {
+		List<PaperDetailUnitExp> paperDetailUnitExps = paperDetailExp.getPaperDetailUnits();
+		int blanksNumbers = 0;
+		for(PaperDetailUnitExp paperDetailUnitExp:paperDetailUnitExps){
+			String str = paperDetailUnitExp.getQuestion().getQuesAnswer();
+			if(str.indexOf("##")>-1){
+				//将所有( 替换为空
+				String str1 = str.replaceAll("##", "");
+				blanksNumbers += ((str.length() - str1.length())/2+1);
+			}else {
+				blanksNumbers += 1;
+			}
+		}
+		return blanksNumbers;
+	}
+	
+	/**
+	 * 计算每个小题所有填空题空格数量
+	 * @param paperDetailExp
+	 * @return
+	 */
+	private int blanksNumbers(PaperDetailUnitExp unitExp) {
+		int blanksNumbers = 0;
+		String str = unitExp.getQuestion().getQuesAnswer();
+		if(str.indexOf("##")>-1){
+			//将所有( 替换为空
+			String str1 = str.replaceAll("##", "");
+			blanksNumbers += ((str.length() - str1.length())/2+1);
+		}else {
+			blanksNumbers += 1;
+		}
+		return blanksNumbers;
+	}
+	
+	/**
+	 * 校验大题下的每个填空题空格分数是否一样
+	 * @param paperDetailExp
+	 * @return  如果分数一样,返回分数
+	 * 			如果分数不一样,返回 null
+	 */
+	protected String checkPaperDetailUnitblanksScore(PaperDetailExp paperDetailExp) {
+		List<PaperDetailUnitExp> paperDetailUnitExps = paperDetailExp.getPaperDetailUnits();
+		Set<Double> scoreSet = new HashSet<Double>();
+		for (PaperDetailUnitExp unitExp : paperDetailUnitExps) {
+			int blanksNumbers = blanksNumbers(unitExp);
+			double everyBlank = unitExp.getScore() / blanksNumbers;
+			scoreSet.add(everyBlank);
+		}
+		if(scoreSet.size() == 1){
+			return scoreSet.iterator().next()+"";
+		}
+		return null;
+	}
+	
+	 /**
+     * 添加主观题与客观题
+     * @param paperDetailExps
+     */
+    public void setSplitPaperDetailExp(PaperExp PaperExp,List<PaperDetailExp> paperDetailExps) {
+		// 客观题
+		List<PaperDetailExp> objectiveDetails = new ArrayList<PaperDetailExp>();
+		// 主观题
+		List<PaperDetailExp> subjectiveDetails = new ArrayList<PaperDetailExp>();
+		for(PaperDetailExp paperDetailExp:paperDetailExps){
+			Long type = paperDetailExp.getSortNumber();
+			if(type < 5L){
+				objectiveDetails.add(paperDetailExp);
+			}else {
+				subjectiveDetails.add(paperDetailExp);
+			}
+		}
+		PaperExp.setObjectiveDetails(objectiveDetails);
+		PaperExp.setSubjectiveDetails(subjectiveDetails);
+		//主观题   客观题的标题显示
+		showTitle(PaperExp);
+	}
+	
+	/**
+	 * 主观题   客观题的标题显示
+	 * @param PaperExp
+	 */
+
+	private void showTitle(PaperExp paperExp) {
+		String title = "";
+		List<PaperDetailExp> objectiveDetails = paperExp.getObjectiveDetails();
+		List<PaperDetailExp> subjectiveDetails = paperExp.getSubjectiveDetails();
+		//设置客观题的标题
+		if(objectiveDetails != null && objectiveDetails.size()>0){
+			Double score = 0.0; 
+			for(PaperDetailExp objectiveDetail:objectiveDetails){
+				score += objectiveDetail.getScore();
+			}
+			String scores = BigDecimal.valueOf(score).stripTrailingZeros().toPlainString();
+			//判断是否有主观题
+			if(subjectiveDetails == null || subjectiveDetails.size() < 1){
+				title = "客观题(总分" + scores + "分)";
+				paperExp.setObjectiveTitle(title);
+			}else {
+				title = "第一部分"+ "    " +"客观题(总分" + scores + "分)";
+			}
+			paperExp.setObjectiveTitle(title);
+		}
+		if(subjectiveDetails != null && subjectiveDetails.size()>0){
+			Double score = 0.0; 
+			for(PaperDetailExp objectiveDetail:subjectiveDetails){
+				score += objectiveDetail.getScore();
+			}
+			String scores = BigDecimal.valueOf(score).stripTrailingZeros().toPlainString();
+			//判断是否有客观题
+			if(objectiveDetails == null || objectiveDetails.size() < 1){
+				title = "主观题(总分" + scores + "分)";
+				paperExp.setSubjectiveTitle(title);
+			}else {
+				title = "第二部分"+ "    " +"主观题(总分" + scores + "分)";
+			}
+			paperExp.setSubjectiveTitle(title);
+		}
+	}
+	
+	@Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+    	PaperExp paperExp = initPaperExp(paperId);
+    	setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
+        if (paperExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+
+}

+ 249 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/ExportPaperAbstractService.java

@@ -5,6 +5,7 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,8 +30,15 @@ import org.docx4j.XmlUtils;
 import org.docx4j.jaxb.Context;
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.docx4j.wml.Body;
+import org.docx4j.wml.CTPPrChange;
+import org.docx4j.wml.CTTabStop;
 import org.docx4j.wml.P;
+import org.docx4j.wml.PPr;
+import org.docx4j.wml.PPrBase;
 import org.docx4j.wml.R;
+import org.docx4j.wml.R.Tab;
+import org.docx4j.wml.STTabJc;
+import org.docx4j.wml.Tabs;
 import org.docx4j.wml.Text;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -151,6 +159,7 @@ public abstract class ExportPaperAbstractService {
 	//陕西师范模板
 	protected static Template SXSF_TEMPLATE_PAPER;
 	protected static Template SXSF_TEMPLATE_ANSWER;
+	protected static Template SXSF_OUTLINE_TEMPLATE_PAPER;
 	
 	//电子科大模板
 	protected static Template DZKD_TEMPLATE_PAPER;
@@ -167,6 +176,7 @@ public abstract class ExportPaperAbstractService {
 	//天津大学
 	protected static Template TJDX_TEMPLATE_PAPER;
 	protected static Template TJDX_TEMPLATE_ANSWER;
+	protected static Template TJDX_OUTLINE_TEMPLATE_PAPER;
 	
 	//石油大学模板
 	protected static Template SYDX_TEMPLATE_PAPER;
@@ -209,6 +219,7 @@ public abstract class ExportPaperAbstractService {
 			
 			SXSF_TEMPLATE_PAPER = CONFIGURATION.getTemplate("sxsf_paper_template.ftl", ENCODING);
 			SXSF_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("sxsf_answer_template.ftl", ENCODING);
+			SXSF_OUTLINE_TEMPLATE_PAPER = CONFIGURATION.getTemplate("sxsf_outline_paper_template.ftl", ENCODING);
 			
 			DZKD_TEMPLATE_PAPER = CONFIGURATION.getTemplate("dzkd_paper_template.ftl", ENCODING);
 			DZKD_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("dzkd_answer_template.ftl", ENCODING);
@@ -221,6 +232,7 @@ public abstract class ExportPaperAbstractService {
 			
 			TJDX_TEMPLATE_PAPER = CONFIGURATION.getTemplate("tjdx_paper_template.ftl", ENCODING);
 			TJDX_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("tjdx_answer_template.ftl", ENCODING);
+			TJDX_OUTLINE_TEMPLATE_PAPER = CONFIGURATION.getTemplate("tjdx_outline_paper_template.ftl", ENCODING);
 			
 			SYDX_TEMPLATE_PAPER = CONFIGURATION.getTemplate("sydx_paper_template.ftl", ENCODING);
 			SYDX_TEMPLATE_ANSWER = CONFIGURATION.getTemplate("sydx_answer_template.ftl", ENCODING);
@@ -238,7 +250,7 @@ public abstract class ExportPaperAbstractService {
 	 * @param zipFileName
 	 * @throws Exception
 	 */
-	public abstract void downloadPaper(String paperId,String zipFileName)throws Exception;
+	public abstract void downloadPaper(String paperId,String zipFileName,String examType)throws Exception;
 	/**
 	 * 下载答案
 	 * @param paperId
@@ -435,14 +447,27 @@ public abstract class ExportPaperAbstractService {
 		for (PaperDetailExp paperDetail : paperDetails) {
 			List<PaperDetailUnitExp> paperDetailUnitExpList = paperDetail.getPaperDetailUnits();
 			for (PaperDetailUnitExp paperDetailUnit:paperDetailUnitExpList) {
+				//定义一个字段,用来判断是否为选择题
+				boolean isOption = false;
 				List<QuesOption> optionList = paperDetailUnit.getQuestion().getQuesOptions();
 				if (optionList != null && optionList.size() > 0) {
+					isOption = true;
 					int index = 0;
 					for (QuesOption quesOption : optionList) {
 						quesOption.setOptionBodyWord(setOptionNum(quesOption.getOptionBodyWord(),getOptionNum(index)));
 						index++;
 					}
 				}
+				if(isOption){
+					//检测选项是否换行
+					int i = optionLine(optionList);
+					if(i==4){
+						optionListFourline(optionList);
+					}
+					if(i==2){
+						optionListTwoline(optionList);
+					}
+				}
 				List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
 				Question question = paperDetailUnit.getQuestion();
 				if (subQuesList != null && subQuesList.size() > 0) {
@@ -460,6 +485,14 @@ public abstract class ExportPaperAbstractService {
 								quesOption.setOptionBodyWord(setOptionNum(quesOption.getOptionBodyWord(),getOptionNum(sub_index)));
 								sub_index++;
 							}
+							//检测选项是否换行
+							int i = optionLine(subOptionList);
+							if(i==4){
+								optionListFourline(subOptionList);
+							}
+							if(i==2){
+								optionListTwoline(subOptionList);
+							}
 						}
 					}
 				} else {
@@ -472,7 +505,220 @@ public abstract class ExportPaperAbstractService {
 		}
 	}
 	
+	/**
+	 * 检测同一行可以放多少个选项
+	 * @param optionList
+	 * @return
+	 * @throws Exception
+	 */
+	private int optionLine(List<QuesOption> optionList) throws Exception{
+		int four = 0;
+		int two = 0;
+		for(int i=0;i<optionList.size();i++){
+    		QuesOption quesOption = optionList.get(i);
+            List<Object> pList = getPlist(quesOption);
+            //判断是否为纯文本
+            boolean isText = DocxProcessUtil.isText((P)pList.get(0));
+            if(isText){
+            	String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
+                //如果四个选项在同一行,长度不能超过64
+                if(optionsLength(tmpText)<18){
+                	four ++;
+                }else if(optionsLength(tmpText)<42){
+                	two ++;
+                }else {
+    				return 1;
+    			}
+            }else {
+				return 1;
+			}
+		}
+		if(four == optionList.size()){
+			return 4;
+		}else {
+			return 2;
+		}
+	}
+	
+	/**
+	 * 根据选项得到选项段落
+	 * @param quesOption
+	 * @return
+	 * @throws Exception
+	 */
+	private List<Object> getPlist(QuesOption quesOption)throws Exception{
+		String optionBodyWordMl = quesOption.getOptionBodyWord();
+		String tmpStr = DocxProcessUtil.BODY_HEADER + optionBodyWordMl + DocxProcessUtil.BODY_TAIL;
+		Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+        List<Object> pList = body.getContent();
+        return pList;
+	}
+	
+	/**
+	 * 计算选项长度
+	 * @param tmpText
+	 * @return
+	 */
+	public int optionsLength(String tmpText){
+		String regEx = "[\\u4e00-\\u9fa5]";
+        String term = tmpText.replaceAll(regEx, "aa");
+        return term.length();
+	}
+	
+	/**
+	 * 两个选项在同一行
+	 * @param optionList
+	 * @throws Exception
+	 */
+	public void optionListTwoline(List<QuesOption> optionList) throws Exception{
+		for(int i=0;i<optionList.size();i++){
+			Boolean isAddTbale = false;
+			QuesOption quesOption = optionList.get(i);
+			String optionBodyWordMl = quesOption.getOptionBodyWord();
+    		String tmpStr = DocxProcessUtil.BODY_HEADER + optionBodyWordMl + DocxProcessUtil.BODY_TAIL;
+    		Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+            List<Object> pList = body.getContent();
+            //首选项添加tabs标签
+			if(i%2==0){
+				isAddTbale = true;
+				if(pList.size()>0){
+					P p = (P) pList.get(0);
+					//添加tabs标签
+					addTabs(p,1);
+					StringBuffer pWordMl = new StringBuffer();
+					for(Object pObj:pList){
+                        if(pObj instanceof P){
+                            pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
+                        }
+                    }
+                    quesOption.setOptionBodyWord(pWordMl.toString());
+				}
+			}else {
+				String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
+				optionMerge(optionList.get((i/2)*2),tmpText,isAddTbale);
+    			quesOption.setOptionBodyWord("");
+			}
+		}
+	}
+	
+	/**
+	 * 四个选项在同一行
+	 * @param paperDetailUnit
+	 */
+    public void optionListFourline(List<QuesOption> optionList) throws Exception{
+    	for(int i=0;i<optionList.size();i++){
+    		Boolean isAddTbale = false;
+    		QuesOption quesOption = optionList.get(i);
+    		String optionBodyWordMl = quesOption.getOptionBodyWord();
+    		String tmpStr = DocxProcessUtil.BODY_HEADER + optionBodyWordMl + DocxProcessUtil.BODY_TAIL;
+    		Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+            List<Object> pList = body.getContent();
+            //首选项添加tabs标签
+    		if(i%4==0){
+    			isAddTbale = true;
+        		if(pList.size()>0){
+    				P p = (P) pList.get(0);
+    				//添加tabs标签
+    				addTabs(p,3);
+                    StringBuffer pWordMl = new StringBuffer();
+                    for(Object pObj:pList){
+                        if(pObj instanceof P){
+                            pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
+                        }
+                    }
+                    quesOption.setOptionBodyWord(pWordMl.toString());
+        		}
+    		}else{
+    			String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
+    			optionMerge(optionList.get((i/4)*4),tmpText,isAddTbale);
+    			quesOption.setOptionBodyWord("");
+    		}
+    	}
+	}
+    
     /**
+     * 在p标签中添加tabs标签
+     * @param p
+     */
+    public void addTabs(P p,int tabNumbers){
+    	//添加tabs标签
+		PPr pPr = p.getPPr();
+		if(pPr==null){
+			pPr = new PPr();
+			p.getContent().add(0,pPr);
+		}
+		Tabs tabs = new Tabs();
+		if(tabNumbers == 3){
+			//添加tabs
+			CTTabStop tab1 = new CTTabStop();
+			tab1.setVal(STTabJc.LEFT);
+			tab1.setPos(BigInteger.valueOf(2268));
+			CTTabStop tab2 = new CTTabStop();
+			tab2.setVal(STTabJc.LEFT);
+			tab2.setPos(BigInteger.valueOf(4536));
+			CTTabStop tab3 = new CTTabStop();
+			tab3.setVal(STTabJc.LEFT);
+			tab3.setPos(BigInteger.valueOf(7230));
+			tabs.getTab().add(tab1);
+			tabs.getTab().add(tab2);
+			tabs.getTab().add(tab3);
+		}else {
+			CTTabStop tab1 = new CTTabStop();
+			tab1.setVal(STTabJc.LEFT);
+			tab1.setPos(BigInteger.valueOf(4536));
+			tabs.getTab().add(tab1);
+		}
+		pPr.setTabs(tabs);
+		List<Object> pContent = p.getContent();
+		addTab(pContent);
+    }
+    
+    /**
+     * 每行添加tab标签
+     * @param content
+     */
+    public void addTab(List<Object> content){
+    	R run = new R();
+    	R.Tab tab = new R.Tab();
+		run.getContent().add(tab);
+		content.add(run);
+    }
+    
+    /**
+     * 选项合并
+     * @param optionList
+     * @param tmpText
+     * @param isLast
+     * @throws Exception
+     */
+    public void optionMerge(QuesOption option, String tmpText,Boolean isLast) throws Exception{
+    	String optionBodyWordMl = option.getOptionBodyWord();
+		String tmpStr = DocxProcessUtil.BODY_HEADER + optionBodyWordMl + DocxProcessUtil.BODY_TAIL;
+		Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+        List<Object> pList = body.getContent();
+        if(pList.size()>0){
+    		P p = (P) pList.get(pList.size()-1);
+        	List<Object> pContent = p.getContent();
+			R run = new R();
+			Text text = new Text();
+			text.setValue(tmpText);
+			run.getContent().add(text);
+			pContent.add(run);
+			//每个选项添加tab结束标签
+        	if(!isLast){
+        		addTab(pContent);
+        	}
+        }
+        StringBuffer pWordMl = new StringBuffer();
+        for(Object pObj:pList){
+            if(pObj instanceof P){
+                pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
+            }
+        }
+        option.setOptionBodyWord(pWordMl.toString());
+    }
+    
+	/**
      * 在题干上设置分数
      * @throws Exception 
      */
@@ -543,7 +789,7 @@ public abstract class ExportPaperAbstractService {
     
     /**
      * 小题排序
-     * @describle 大题排序完成之后,放在一个集合里面。然后对相同类型的大题分组,生成不同的合,在对小题进行
+     * @describle 大题排序完成之后,放在一个集合里面。然后对相同类型的大题分组,生成不同的合,在对小题进行
      * @param paperDetailExps
      */
     public void sortPaperDetailUnitExps(List<PaperDetailExp> paperDetailExps) {
@@ -707,6 +953,7 @@ public abstract class ExportPaperAbstractService {
 		//将对象转成 json对象
 		Gson gson = new Gson();
 		String strJSON = gson.toJson(computerTestPaper);
+		strJSON = CommonUtils.replaceUnicodeStr(strJSON);
 		//生成文件流写入JSON文件
 		FileOutputStream outputStream;
 		try {

+ 125 - 125
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/HzkjExportPaperService.java

@@ -1,125 +1,125 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.math.BigDecimal;
-import java.util.List;
-
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.dto.PaperDetailExp;
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
- * @author  	chenken
- * @date    	2017年7月7日 上午11:29:49
- * @company 	QMTH
- * @description 华中科技大学导出、上传文件service
- */
-@Service("hzkjExportPaperService")
-public class HzkjExportPaperService extends ExportPaperAbstractService {
-
-	@Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		setExpDtoTitle(paperExp.getPaperDetails());
-		if(paperExp!=null){
-			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,HZKJ_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-    }
-	
-	@Override
-	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String answerFileName = paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
-			DocxProcessUtil.exportWordNew(paperExp,file,HZKJ_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
-		}
-	}
-
-	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-		PaperExp paperExp = initPaperExp(paperId);
-        if (paperExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-
-	@Override
-	public void setExpDtoTitle(List<PaperDetailExp> paperDetailExps) {
-		for(PaperDetailExp paperDetailExp:paperDetailExps){
-			String title = "";
-			String titleDetail = null;
-			String totalScore = BigDecimal.valueOf(paperDetailExp.getScore()).stripTrailingZeros().toPlainString();
-			QuesStructType type = paperDetailExp.getPaperDetailUnits().get(0).getQuestionType();
-			String questionScore = checkPaperDetailUnitScore(paperDetailExp);
-			String scoreString = questionScore==null?"":"每小题"+questionScore+"分,";
-			if (type == QuesStructType.SINGLE_ANSWER_QUESTION) {
-				paperDetailExp.setName("单项选择题");
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore + "分)";
-				titleDetail = "在每小题列出的备选项中只有一个符号合题目要求的,请将其选出并将“答题卡”的相应代码涂黑,错涂、多涂或未涂均无分";
-			} else if (type == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
-				paperDetailExp.setName("多项选择题");
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore+ "分)";
-				titleDetail = "在每小题列出的备选项中有一个或多个符号合题目要求的,请将符合项选出并将“答题卡”的相应代码涂黑";
-			} else if (type == QuesStructType.BOOL_ANSWER_QUESTION) {
-				paperDetailExp.setName("判断题");
-				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
-						+ scoreString + "共" + totalScore+ "分。"
-						+ "正确的填涂√、错误填涂×。错涂、多涂或未涂均无分)";
-			} else {
-				paperDetailExp.setName(type.getName());
-				title = "(本大题共"+paperDetailExp.getUnitCount()+"小题,"+scoreString+"共"+totalScore+"分)";
-			}
-			paperDetailExp.setTitle(title);
-			paperDetailExp.setTitleDetail(titleDetail);
-		}
-	}
-	
-	
-
-}
-
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.math.BigDecimal;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.PaperDetailExp;
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月7日 上午11:29:49
+ * @company 	QMTH
+ * @description 华中科技大学导出、上传文件service
+ */
+@Service("hzkjExportPaperService")
+public class HzkjExportPaperService extends ExportPaperAbstractService {
+
+	@Override
+    public void downloadPaper(String paperId,String zipFileName,String examTpye) throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		setExpDtoTitle(paperExp.getPaperDetails());
+		if(paperExp!=null){
+			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			DocxProcessUtil.exportWordNew(paperExp, file,HZKJ_TEMPLATE_PAPER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+    }
+	
+	@Override
+	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String answerFileName = paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
+			DocxProcessUtil.exportWordNew(paperExp,file,HZKJ_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
+		}
+	}
+
+	@Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+		PaperExp paperExp = initPaperExp(paperId);
+        if (paperExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+
+	@Override
+	public void setExpDtoTitle(List<PaperDetailExp> paperDetailExps) {
+		for(PaperDetailExp paperDetailExp:paperDetailExps){
+			String title = "";
+			String titleDetail = null;
+			String totalScore = BigDecimal.valueOf(paperDetailExp.getScore()).stripTrailingZeros().toPlainString();
+			QuesStructType type = paperDetailExp.getPaperDetailUnits().get(0).getQuestionType();
+			String questionScore = checkPaperDetailUnitScore(paperDetailExp);
+			String scoreString = questionScore==null?"":"每小题"+questionScore+"分,";
+			if (type == QuesStructType.SINGLE_ANSWER_QUESTION) {
+				paperDetailExp.setName("单项选择题");
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore + "分)";
+				titleDetail = "在每小题列出的备选项中只有一个符号合题目要求的,请将其选出并将“答题卡”的相应代码涂黑,错涂、多涂或未涂均无分";
+			} else if (type == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
+				paperDetailExp.setName("多项选择题");
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore+ "分)";
+				titleDetail = "在每小题列出的备选项中有一个或多个符号合题目要求的,请将符合项选出并将“答题卡”的相应代码涂黑";
+			} else if (type == QuesStructType.BOOL_ANSWER_QUESTION) {
+				paperDetailExp.setName("判断题");
+				title = "(本大题共" + paperDetailExp.getUnitCount() + "小题,"
+						+ scoreString + "共" + totalScore+ "分。"
+						+ "正确的填涂√、错误填涂×。错涂、多涂或未涂均无分)";
+			} else {
+				paperDetailExp.setName(type.getName());
+				title = "(本大题共"+paperDetailExp.getUnitCount()+"小题,"+scoreString+"共"+totalScore+"分)";
+			}
+			paperDetailExp.setTitle(title);
+			paperDetailExp.setTitleDetail(titleDetail);
+		}
+	}
+	
+	
+
+}
+

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/SddxExportPaperService.java

@@ -28,7 +28,7 @@ import com.qmth.cqb.utils.word.DocxProcessUtil;
 public class SddxExportPaperService extends ExportPaperAbstractService{
 	
 	@Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
+    public void downloadPaper(String paperId,String zipFileName,String examType) throws Exception {
 		PaperExp paperExp = initPaperExp(paperId);
 		if(paperExp!=null){
 			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;

+ 90 - 86
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/SxsfExportPaperService.java

@@ -1,86 +1,90 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.util.List;
-
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
- * @author  	chenken
- * @date    	2017年7月7日 上午11:29:49
- * @company 	QMTH
- * @description 陕西师范大学导出、上传文件service
- */
-@Service("sxsfExportPaperService")
-public class SxsfExportPaperService extends ExportPaperAbstractService {
-	
-	@Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,SXSF_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-    }
-	
-	@Override
-	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
-			DocxProcessUtil.exportWordNew(paperExp,file,SXSF_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
-		}
-	}
-
-	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-		PaperExp paperExp = initPaperExp(paperId);
-        if (paperExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-
-}
-
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月7日 上午11:29:49
+ * @company 	QMTH
+ * @description 陕西师范大学导出、上传文件service
+ */
+@Service("sxsfExportPaperService")
+public class SxsfExportPaperService extends ExportPaperAbstractService {
+	
+	@Override
+    public void downloadPaper(String paperId,String zipFileName,String examType) throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			if(examType.equals("offLine")){
+				DocxProcessUtil.exportWordNew(paperExp, file,SXSF_OUTLINE_TEMPLATE_PAPER);
+			}else{
+				DocxProcessUtil.exportWordNew(paperExp, file,SXSF_TEMPLATE_PAPER);
+			}
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+    }
+	
+	@Override
+	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
+			DocxProcessUtil.exportWordNew(paperExp,file,SXSF_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
+		}
+	}
+
+	@Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+		PaperExp paperExp = initPaperExp(paperId);
+        if (paperExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+
+}
+

+ 368 - 368
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/SydxExportPaperService.java

@@ -1,368 +1,368 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-
-
-
-import org.apache.commons.lang3.StringUtils;
-import org.docx4j.XmlUtils;
-import org.docx4j.jaxb.Context;
-import org.docx4j.wml.Body;
-import org.docx4j.wml.P;
-import org.docx4j.wml.R;
-import org.docx4j.wml.Text;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.google.gson.Gson;
-import com.qmth.cqb.paper.dao.PaperDetailRepo;
-import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
-import com.qmth.cqb.paper.dao.PaperRepo;
-import com.qmth.cqb.paper.dto.PaperDetailExp;
-import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.Paper;
-import com.qmth.cqb.paper.model.PaperDetail;
-import com.qmth.cqb.paper.model.PaperDetailUnit;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.paper.service.PaperDetailService;
-import com.qmth.cqb.paper.service.PaperDetailUnitService;
-import com.qmth.cqb.paper.service.PaperService;
-import com.qmth.cqb.question.dao.QuesRepo;
-import com.qmth.cqb.question.model.QuesOption;
-import com.qmth.cqb.question.model.Question;
-import com.qmth.cqb.utils.BeanCopierUtil;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.exception.PaperException;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
- * 
- * @author  	chenken
- * @date    	2017年7月31日 上午9:04:53
- * @company 	QMTH
- * @description 石油大学导出、上传文件service
- */
-@Service("sydxExportPaperService")
-public class SydxExportPaperService extends ExportPaperAbstractService{
-    @Autowired
-    PaperRepo paperRepo;
-
-    @Autowired
-    PaperDetailRepo paperDetailRepo;
-
-    @Autowired
-    PaperDetailUnitRepo paperDetailUnitRepo;
-
-    @Autowired
-    QuesRepo quesRepo;
-
-    @Autowired
-    Gson gson;
-
-    @Autowired
-    PaperDetailUnitService paperDetailUnitService;
-
-    @Autowired
-    PaperService paperService;
-
-	@Autowired
-	private PaperDetailService paperDetailService;
-	
-    @Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
-        PaperExp paperExp = initExportSydxPaper(paperId);
-		if(paperExp!=null){
-			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,SYDX_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-        
-    }
-    
-    @Override
-	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
-    	PaperExp paperExp = initExportSydxPaper(paperId);
-		if(paperExp!=null){
-			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,SYDX_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-		
-	}
-    
-    @Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-    	PaperExp exportPaperExp = initExportSydxPaper(paperId);
-    	PaperExp exportPaperStructureExp = initExportSydxPaper(paperId);
-        if (exportPaperExp!=null&&exportPaperStructureExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(exportPaperStructureExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(exportPaperStructureExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-	
-    /**
-     * 初始化导出石油大学试卷DTO
-     * @param id
-     * @return
-     */
-    private PaperExp initExportSydxPaper(String id) throws Exception{
-        //获取paper
-        Paper paper = paperRepo.findOne(id);
-        paperService.formatPaper(paper,null);
-        if(paper == null){
-            throw new PaperException("该试卷不存在");
-        }
-        //创建paperDto
-        PaperExp paperExp = BeanCopierUtil.copyProperties(paper,PaperExp.class);
-
-        paperExp.setTitle(CommonUtils.PAPER_TITLE);
-        paperExp.setSubTitle(CommonUtils.PAPER_SUB_TITLE);
-        //获取大题
-        List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
-        List<PaperDetailExp> paperDetailExps = BeanCopierUtil.copyPropertiesOfList(paperDetails,PaperDetailExp.class);
-        paperExp.setPaperDetails(paperDetailExps);
-
-        //封装小题
-        for(int i = 0; i < paperDetailExps.size(); i++){
-            PaperDetailExp paperDetailExp = paperDetailExps.get(i);
-            paperDetailExp.setTitle(getDetailTitle(paperDetailExp));
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
-
-            setAnswerWord(paperDetailUnits);
-
-            List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitExp.class);
-            //选择题,套题下选择题  选项顺序重新排列
-            paperService.reorderChoicequestionOption(paperDetailUnitExps);
-            paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
-        }
-        //初始化试卷序号
-        initPaperNum(paperExp);
-        return paperExp;
-    }
-
-    /**
-     * 设置客观题答案
-     * @param answer
-     * @return
-     * @throws Exception
-     */
-    private String getObjectAnswer(String answerWordMl,String answer) throws Exception {
-        String tmpStr = DocxProcessUtil.BODY_HEADER + answerWordMl + DocxProcessUtil.BODY_TAIL;
-        Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
-        List<Object> pList = body.getContent();
-        int index = 0;
-        for(Object pObj:pList){
-            if(index > 0){
-                break;
-            }
-            P p = (P) pObj;
-            List<Object> pContent = p.getContent();
-            pContent.removeAll(pContent);
-            R run = new R();
-            Text text = new Text();
-            text.setValue("[答案]:"+answer);
-            run.getContent().add(text);
-            pContent.add(0,run);
-            index++;
-        }
-        StringBuffer pWordMl = new StringBuffer();
-        for(Object pObj:pList){
-            if(pObj instanceof P){
-                pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
-            }
-        }
-        return pWordMl.toString();
-    }
-
-    /**
-     * 设置主观题答案
-     * @param answerWordMl
-     * @return
-     * @throws Exception
-     */
-    private String getSubjectAnswer(String answerWordMl) throws Exception {
-        String tmpStr = DocxProcessUtil.BODY_HEADER + answerWordMl + DocxProcessUtil.BODY_TAIL;
-        Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
-        List<Object> pList = body.getContent();
-        int index = 0;
-        for(Object pObj:pList){
-            if(index > 0){
-                break;
-            }
-            P p = (P) pObj;
-            List<Object> pContent = p.getContent();
-            R run = new R();
-            Text text = new Text();
-            text.setValue("[答案]:");
-            run.getContent().add(text);
-            pContent.add(0,run);
-            index++;
-        }
-        StringBuffer pWordMl = new StringBuffer();
-        for(Object pObj:pList){
-            if(pObj instanceof P){
-                pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
-            }
-        }
-        return pWordMl.toString();
-    }
-
-    private void setAnswerWord(List<PaperDetailUnit> paperDetailUnits) throws Exception{
-        for (PaperDetailUnit paperDetailUnit : paperDetailUnits) {
-            if(paperDetailUnit==null||paperDetailUnit.getQuestion()==null){
-                break;
-            }
-            String optionOrder = paperDetailUnit.getOptionOrder();
-            Question question = paperDetailUnit.getQuestion();
-            if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
-                    || question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
-                setAnswerWordUnit(question, optionOrder);
-            } else if (question.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
-                List<Question> subQuestions = question.getSubQuestions();
-                int index = 0;
-                for (int k = 0; k < subQuestions.size(); k++) {
-                    Question subQuestion = subQuestions.get(k);
-                    if (subQuestion.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
-                            || subQuestion.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
-                        if(StringUtils.isNotEmpty(optionOrder) && optionOrder.contains(";")){
-                            setAnswerWordUnit(subQuestion, optionOrder.split(";")[index]);
-                        }else{
-                            setAnswerWordUnit(subQuestion, "");
-                        }
-                        index++;
-                    }
-                }
-            }else{
-                question.setQuesAnswerWord(getSubjectAnswer(question.getQuesAnswerWord()));
-            }
-        }
-    }
-
-    private void setAnswerWordUnit(Question question, String optionOrder) throws Exception{
-        List<QuesOption> quesOptions = question.getQuesOptions();
-        if(quesOptions == null || quesOptions.size() == 0){
-            return;
-        }
-        if(StringUtils.isEmpty(optionOrder)){
-            int j = 0;
-            String answer = "";
-            for(QuesOption quesOption : quesOptions){
-                if(quesOption.getIsCorrect() == 1){
-                    answer += CommonUtils.getOptionNum(j);
-                }
-                j++;
-            }
-            question.setQuesAnswerWord(getObjectAnswer(question.getQuesAnswerWord(),answer));
-        }else{
-            String [] order = optionOrder.split(",");
-            for(int i = 0;i < order.length;i++){
-                for(QuesOption quesOption : quesOptions){
-                    if(order[i].equals(quesOption.getNumber()) && quesOption.getIsCorrect() == 1){
-                        question.setQuesAnswerWord(getObjectAnswer(question.getQuesAnswerWord(),CommonUtils.getOptionNum(i)));
-                    }
-                }
-            }
-        }
-    }
-
-    public String getDetailTitle(PaperDetailExp paperDetailExp){
-        int totalScore = paperDetailExp.getScore().intValue();
-        int count = paperDetailExp.getUnitCount();
-        return "本大题共"+count+"小题,共"+totalScore+"分";
-    }
-
-    /**
-     * 初始化序号
-     * @param paperExp
-     */
-    public void initPaperNum(PaperExp paperExp)throws Exception{
-        if(paperExp.getPaperDetails() == null || paperExp.getPaperDetails().size() == 0){
-            return;
-        }
-        int mainNum = 0;
-        int subNum = 0;
-        Collections.sort(paperExp.getPaperDetails());
-        for(PaperDetailExp paperDetail: paperExp.getPaperDetails()){
-            //大题序号
-            paperDetail.setNumber(++mainNum);
-            paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
-            if(paperDetail.getPaperDetailUnits() == null ||
-                    paperDetail.getPaperDetailUnits().size() == 0){
-                continue;
-            }
-            //小题序号
-            for(PaperDetailUnitExp paperDetailUnit:paperDetail.getPaperDetailUnits()){
-                List<QuesOption> optionList = paperDetailUnit.getQuestion().getQuesOptions();
-                if(optionList != null && optionList.size() > 0){
-                    int index = 0;
-                    for(QuesOption quesOption:optionList){
-                        quesOption.setOptionBodyWord(initPaperExpService.setOptionNum(quesOption.getOptionBodyWord(),initPaperExpService.getOptionNum(index)));
-                        index++;
-                    }
-                }
-                List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
-                Question question = paperDetailUnit.getQuestion();
-                //套题序号
-                if(subQuesList != null && subQuesList.size() > 0){
-                    question.setQuesBodyWord(initPaperExpService.replaceQuesBlank(question.getQuesBodyWord(),subNum + 1));
-                    for(Question subQues:subQuesList){
-                        int curSubNum = ++subNum;
-                        subQues.setQuesBodyWord(initPaperExpService.setSubQuesNum(subQues.getQuesBodyWord(),curSubNum));
-                        subQues.setQuesBodyWord(initPaperExpService.replaceQuesBlank(subQues.getQuesBodyWord(),curSubNum));
-                        List<QuesOption> subOptionList = subQues.getQuesOptions();
-                        if(subOptionList != null && subOptionList.size() > 0){
-                            int sub_index = 0;
-                            for(QuesOption quesOption:subOptionList){
-                                quesOption.setOptionBodyWord(initPaperExpService.setOptionNum(quesOption.getOptionBodyWord(),initPaperExpService.getOptionNum(sub_index)));
-                                sub_index++;
-                            }
-                        }
-                    }
-                }else{
-                    int curSubNum = ++subNum;
-                    question.setQuesBodyWord(initPaperExpService.setSubQuesNum(question.getQuesBodyWord(),curSubNum));
-                    question.setQuesBodyWord(initPaperExpService.replaceQuesBlank(question.getQuesBodyWord(),curSubNum));
-                }
-            }
-        }
-    }
-
-}
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+
+
+import org.apache.commons.lang3.StringUtils;
+import org.docx4j.XmlUtils;
+import org.docx4j.jaxb.Context;
+import org.docx4j.wml.Body;
+import org.docx4j.wml.P;
+import org.docx4j.wml.R;
+import org.docx4j.wml.Text;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.google.gson.Gson;
+import com.qmth.cqb.paper.dao.PaperDetailRepo;
+import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
+import com.qmth.cqb.paper.dao.PaperRepo;
+import com.qmth.cqb.paper.dto.PaperDetailExp;
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.Paper;
+import com.qmth.cqb.paper.model.PaperDetail;
+import com.qmth.cqb.paper.model.PaperDetailUnit;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.paper.service.PaperDetailService;
+import com.qmth.cqb.paper.service.PaperDetailUnitService;
+import com.qmth.cqb.paper.service.PaperService;
+import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.model.QuesOption;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.utils.BeanCopierUtil;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.exception.PaperException;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年7月31日 上午9:04:53
+ * @company 	QMTH
+ * @description 石油大学导出、上传文件service
+ */
+@Service("sydxExportPaperService")
+public class SydxExportPaperService extends ExportPaperAbstractService{
+    @Autowired
+    PaperRepo paperRepo;
+
+    @Autowired
+    PaperDetailRepo paperDetailRepo;
+
+    @Autowired
+    PaperDetailUnitRepo paperDetailUnitRepo;
+
+    @Autowired
+    QuesRepo quesRepo;
+
+    @Autowired
+    Gson gson;
+
+    @Autowired
+    PaperDetailUnitService paperDetailUnitService;
+
+    @Autowired
+    PaperService paperService;
+
+	@Autowired
+	private PaperDetailService paperDetailService;
+	
+    @Override
+    public void downloadPaper(String paperId,String zipFileName,String examType) throws Exception {
+        PaperExp paperExp = initExportSydxPaper(paperId);
+		if(paperExp!=null){
+			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			DocxProcessUtil.exportWordNew(paperExp, file,SYDX_TEMPLATE_PAPER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+        
+    }
+    
+    @Override
+	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
+    	PaperExp paperExp = initExportSydxPaper(paperId);
+		if(paperExp!=null){
+			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			DocxProcessUtil.exportWordNew(paperExp, file,SYDX_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+		
+	}
+    
+    @Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+    	PaperExp exportPaperExp = initExportSydxPaper(paperId);
+    	PaperExp exportPaperStructureExp = initExportSydxPaper(paperId);
+        if (exportPaperExp!=null&&exportPaperStructureExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(exportPaperStructureExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(exportPaperStructureExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+	
+    /**
+     * 初始化导出石油大学试卷DTO
+     * @param id
+     * @return
+     */
+    private PaperExp initExportSydxPaper(String id) throws Exception{
+        //获取paper
+        Paper paper = paperRepo.findOne(id);
+        paperService.formatPaper(paper,null);
+        if(paper == null){
+            throw new PaperException("该试卷不存在");
+        }
+        //创建paperDto
+        PaperExp paperExp = BeanCopierUtil.copyProperties(paper,PaperExp.class);
+
+        paperExp.setTitle(CommonUtils.PAPER_TITLE);
+        paperExp.setSubTitle(CommonUtils.PAPER_SUB_TITLE);
+        //获取大题
+        List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
+        List<PaperDetailExp> paperDetailExps = BeanCopierUtil.copyPropertiesOfList(paperDetails,PaperDetailExp.class);
+        paperExp.setPaperDetails(paperDetailExps);
+
+        //封装小题
+        for(int i = 0; i < paperDetailExps.size(); i++){
+            PaperDetailExp paperDetailExp = paperDetailExps.get(i);
+            paperDetailExp.setTitle(getDetailTitle(paperDetailExp));
+            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
+
+            setAnswerWord(paperDetailUnits);
+
+            List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitExp.class);
+            //选择题,套题下选择题  选项顺序重新排列
+            paperService.reorderChoicequestionOption(paperDetailUnitExps);
+            paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
+        }
+        //初始化试卷序号
+        initPaperNum(paperExp);
+        return paperExp;
+    }
+
+    /**
+     * 设置客观题答案
+     * @param answer
+     * @return
+     * @throws Exception
+     */
+    private String getObjectAnswer(String answerWordMl,String answer) throws Exception {
+        String tmpStr = DocxProcessUtil.BODY_HEADER + answerWordMl + DocxProcessUtil.BODY_TAIL;
+        Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+        List<Object> pList = body.getContent();
+        int index = 0;
+        for(Object pObj:pList){
+            if(index > 0){
+                break;
+            }
+            P p = (P) pObj;
+            List<Object> pContent = p.getContent();
+            pContent.removeAll(pContent);
+            R run = new R();
+            Text text = new Text();
+            text.setValue("[答案]:"+answer);
+            run.getContent().add(text);
+            pContent.add(0,run);
+            index++;
+        }
+        StringBuffer pWordMl = new StringBuffer();
+        for(Object pObj:pList){
+            if(pObj instanceof P){
+                pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
+            }
+        }
+        return pWordMl.toString();
+    }
+
+    /**
+     * 设置主观题答案
+     * @param answerWordMl
+     * @return
+     * @throws Exception
+     */
+    private String getSubjectAnswer(String answerWordMl) throws Exception {
+        String tmpStr = DocxProcessUtil.BODY_HEADER + answerWordMl + DocxProcessUtil.BODY_TAIL;
+        Body body = (Body)XmlUtils.unmarshalString(tmpStr,Context.jc,Body.class);
+        List<Object> pList = body.getContent();
+        int index = 0;
+        for(Object pObj:pList){
+            if(index > 0){
+                break;
+            }
+            P p = (P) pObj;
+            List<Object> pContent = p.getContent();
+            R run = new R();
+            Text text = new Text();
+            text.setValue("[答案]:");
+            run.getContent().add(text);
+            pContent.add(0,run);
+            index++;
+        }
+        StringBuffer pWordMl = new StringBuffer();
+        for(Object pObj:pList){
+            if(pObj instanceof P){
+                pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
+            }
+        }
+        return pWordMl.toString();
+    }
+
+    private void setAnswerWord(List<PaperDetailUnit> paperDetailUnits) throws Exception{
+        for (PaperDetailUnit paperDetailUnit : paperDetailUnits) {
+            if(paperDetailUnit==null||paperDetailUnit.getQuestion()==null){
+                break;
+            }
+            String optionOrder = paperDetailUnit.getOptionOrder();
+            Question question = paperDetailUnit.getQuestion();
+            if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
+                    || question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
+                setAnswerWordUnit(question, optionOrder);
+            } else if (question.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
+                List<Question> subQuestions = question.getSubQuestions();
+                int index = 0;
+                for (int k = 0; k < subQuestions.size(); k++) {
+                    Question subQuestion = subQuestions.get(k);
+                    if (subQuestion.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
+                            || subQuestion.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
+                        if(StringUtils.isNotEmpty(optionOrder) && optionOrder.contains(";")){
+                            setAnswerWordUnit(subQuestion, optionOrder.split(";")[index]);
+                        }else{
+                            setAnswerWordUnit(subQuestion, "");
+                        }
+                        index++;
+                    }
+                }
+            }else{
+                question.setQuesAnswerWord(getSubjectAnswer(question.getQuesAnswerWord()));
+            }
+        }
+    }
+
+    private void setAnswerWordUnit(Question question, String optionOrder) throws Exception{
+        List<QuesOption> quesOptions = question.getQuesOptions();
+        if(quesOptions == null || quesOptions.size() == 0){
+            return;
+        }
+        if(StringUtils.isEmpty(optionOrder)){
+            int j = 0;
+            String answer = "";
+            for(QuesOption quesOption : quesOptions){
+                if(quesOption.getIsCorrect() == 1){
+                    answer += CommonUtils.getOptionNum(j);
+                }
+                j++;
+            }
+            question.setQuesAnswerWord(getObjectAnswer(question.getQuesAnswerWord(),answer));
+        }else{
+            String [] order = optionOrder.split(",");
+            for(int i = 0;i < order.length;i++){
+                for(QuesOption quesOption : quesOptions){
+                    if(order[i].equals(quesOption.getNumber()) && quesOption.getIsCorrect() == 1){
+                        question.setQuesAnswerWord(getObjectAnswer(question.getQuesAnswerWord(),CommonUtils.getOptionNum(i)));
+                    }
+                }
+            }
+        }
+    }
+
+    public String getDetailTitle(PaperDetailExp paperDetailExp){
+        int totalScore = paperDetailExp.getScore().intValue();
+        int count = paperDetailExp.getUnitCount();
+        return "本大题共"+count+"小题,共"+totalScore+"分";
+    }
+
+    /**
+     * 初始化序号
+     * @param paperExp
+     */
+    public void initPaperNum(PaperExp paperExp)throws Exception{
+        if(paperExp.getPaperDetails() == null || paperExp.getPaperDetails().size() == 0){
+            return;
+        }
+        int mainNum = 0;
+        int subNum = 0;
+        Collections.sort(paperExp.getPaperDetails());
+        for(PaperDetailExp paperDetail: paperExp.getPaperDetails()){
+            //大题序号
+            paperDetail.setNumber(++mainNum);
+            paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
+            if(paperDetail.getPaperDetailUnits() == null ||
+                    paperDetail.getPaperDetailUnits().size() == 0){
+                continue;
+            }
+            //小题序号
+            for(PaperDetailUnitExp paperDetailUnit:paperDetail.getPaperDetailUnits()){
+                List<QuesOption> optionList = paperDetailUnit.getQuestion().getQuesOptions();
+                if(optionList != null && optionList.size() > 0){
+                    int index = 0;
+                    for(QuesOption quesOption:optionList){
+                        quesOption.setOptionBodyWord(initPaperExpService.setOptionNum(quesOption.getOptionBodyWord(),initPaperExpService.getOptionNum(index)));
+                        index++;
+                    }
+                }
+                List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
+                Question question = paperDetailUnit.getQuestion();
+                //套题序号
+                if(subQuesList != null && subQuesList.size() > 0){
+                    question.setQuesBodyWord(initPaperExpService.replaceQuesBlank(question.getQuesBodyWord(),subNum + 1));
+                    for(Question subQues:subQuesList){
+                        int curSubNum = ++subNum;
+                        subQues.setQuesBodyWord(initPaperExpService.setSubQuesNum(subQues.getQuesBodyWord(),curSubNum));
+                        subQues.setQuesBodyWord(initPaperExpService.replaceQuesBlank(subQues.getQuesBodyWord(),curSubNum));
+                        List<QuesOption> subOptionList = subQues.getQuesOptions();
+                        if(subOptionList != null && subOptionList.size() > 0){
+                            int sub_index = 0;
+                            for(QuesOption quesOption:subOptionList){
+                                quesOption.setOptionBodyWord(initPaperExpService.setOptionNum(quesOption.getOptionBodyWord(),initPaperExpService.getOptionNum(sub_index)));
+                                sub_index++;
+                            }
+                        }
+                    }
+                }else{
+                    int curSubNum = ++subNum;
+                    question.setQuesBodyWord(initPaperExpService.setSubQuesNum(question.getQuesBodyWord(),curSubNum));
+                    question.setQuesBodyWord(initPaperExpService.replaceQuesBlank(question.getQuesBodyWord(),curSubNum));
+                }
+            }
+        }
+    }
+
+}

+ 91 - 87
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/TjdxExportPaperService.java

@@ -1,87 +1,91 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.util.List;
-
-
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
- * @author  	chenken
- * @date    	2017年7月7日 上午11:29:49
- * @company 	QMTH
- * @description 天津大学导出、上传文件service
- */
-@Service("tjdxExportPaperService")
-public class TjdxExportPaperService extends ExportPaperAbstractService {
-    
-	@Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,TJDX_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-    }
-	
-	@Override
-	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String answerFileName = paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
-			DocxProcessUtil.exportWordNew(paperExp,file,TJDX_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
-		}
-	}
-
-	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-		PaperExp paperExp = initPaperExp(paperId);
-        if (paperExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-    
-}
-
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.util.List;
+
+
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月7日 上午11:29:49
+ * @company 	QMTH
+ * @description 天津大学导出、上传文件service
+ */
+@Service("tjdxExportPaperService")
+public class TjdxExportPaperService extends ExportPaperAbstractService {
+    
+	@Override
+    public void downloadPaper(String paperId,String zipFileName,String examType) throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			if(examType.equals("offLine")){
+				DocxProcessUtil.exportWordNew(paperExp, file,TJDX_OUTLINE_TEMPLATE_PAPER);
+			}else {
+				DocxProcessUtil.exportWordNew(paperExp, file,TJDX_TEMPLATE_PAPER);
+			}
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+    }
+	
+	@Override
+	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String answerFileName = paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
+			DocxProcessUtil.exportWordNew(paperExp,file,TJDX_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
+		}
+	}
+
+	@Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+		PaperExp paperExp = initPaperExp(paperId);
+        if (paperExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,TJDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+    
+}
+

+ 86 - 86
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/xajdExportPaperService.java

@@ -1,86 +1,86 @@
-package com.qmth.cqb.paper.service.export;
-
-import java.io.File;
-import java.util.List;
-
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamFile;
-import com.qmth.cqb.paper.model.ExportStructure;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.QuestionTypeNum;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.enums.ExamFileType;
-import com.qmth.cqb.utils.enums.ExportType;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-/**
-* @author  	weiwenhai
-* @date    	2017.10.23
-* @company 	QMTH
-* @description 西安交大导出、上传文件service
-*/
-@Service("xajdExportPaperService")
-public class xajdExportPaperService extends ExportPaperAbstractService{
-    
-	@Override
-    public void downloadPaper(String paperId,String zipFileName) throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
-			DocxProcessUtil.exportWordNew(paperExp, file,XAJD_TEMPLATE_PAPER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
-		}
-    }
-	
-	@Override
-	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
-		PaperExp paperExp = initPaperExp(paperId);
-		if(paperExp!=null){
-			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
-			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
-			DocxProcessUtil.exportWordNew(paperExp,file,XAJD_TEMPLATE_ANSWER);
-			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
-		}
-	}
-
-	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
-		PaperExp paperExp = initPaperExp(paperId);
-        if (paperExp!=null) {
-        	String currNum = CommonUtils.getCurNum();
-        	//删除原有试卷文件
-        	ExamFile examFile = new ExamFile();
-        	examFile.setExamId(extractConfig.getExamId()+"");
-        	examFile.setCourseId(extractConfig.getCourseCode());
-        	examFile.setOrgId(extractConfig.getOrgId());
-        	examFileService.deleteExamFile(examFile);
-        	//没有试卷结构导出设置
-        	if(exportStructure==null){
-        		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
-        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
-        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
-        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
-	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
-	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
-				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
-        		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
-        	}
-        }
-    }
-	
-}
-
+package com.qmth.cqb.paper.service.export;
+
+import java.io.File;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dto.PaperExp;
+import com.qmth.cqb.paper.model.ExamFile;
+import com.qmth.cqb.paper.model.ExportStructure;
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.QuestionTypeNum;
+import com.qmth.cqb.utils.CommonUtils;
+import com.qmth.cqb.utils.enums.ExamFileType;
+import com.qmth.cqb.utils.enums.ExportType;
+import com.qmth.cqb.utils.word.DocxProcessUtil;
+
+/**
+* @author  	weiwenhai
+* @date    	2017.10.23
+* @company 	QMTH
+* @description 西安交大导出、上传文件service
+*/
+@Service("xajdExportPaperService")
+public class xajdExportPaperService extends ExportPaperAbstractService{
+    
+	@Override
+    public void downloadPaper(String paperId,String zipFileName,String examType) throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			DocxProcessUtil.exportWordNew(paperExp, file,XAJD_TEMPLATE_PAPER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+		}
+    }
+	
+	@Override
+	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
+		PaperExp paperExp = initPaperExp(paperId);
+		if(paperExp!=null){
+			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
+			DocxProcessUtil.exportWordNew(paperExp,file,XAJD_TEMPLATE_ANSWER);
+			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));
+		}
+	}
+
+	@Override
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,AccessUser accessUser) throws Exception{
+		PaperExp paperExp = initPaperExp(paperId);
+        if (paperExp!=null) {
+        	String currNum = CommonUtils.getCurNum();
+        	//删除原有试卷文件
+        	ExamFile examFile = new ExamFile();
+        	examFile.setExamId(extractConfig.getExamId()+"");
+        	examFile.setCourseId(extractConfig.getCourseCode());
+        	examFile.setOrgId(extractConfig.getOrgId());
+        	examFileService.deleteExamFile(examFile);
+        	//没有试卷结构导出设置
+        	if(exportStructure==null){
+        		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
+        		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
+        		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
+        		checkObjectiveDetailsNum(paperExp,questionTypeNums);
+	    		//上传试卷
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
+	        	//上传答案
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+				//上传试卷结构   不能在上传试卷和答案之前
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
+        		//上传机考JSON文件
+        		uploadComputerTestFile(extractConfig,accessUser);
+        	}
+        }
+    }
+	
+}
+

+ 5 - 5
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExportPaperServiceImpl.java

@@ -77,7 +77,7 @@ public class ExportPaperServiceImpl implements ExportPaperService{
     private MongoTemplate mongoTemplate;
 
 	@Override
-	public void exportPaperFile(String paperId,String serviceName,String exportContentList,HttpServletResponse response,String loginName) throws Exception {
+	public void exportPaperFile(String paperId,String serviceName,String exportContentList,HttpServletResponse response,String loginName, String examType) throws Exception {
 		ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(serviceName);
 		//根据试卷id查询试卷 
 		Paper paper = paperRepo.findOne(paperId);
@@ -92,13 +92,13 @@ public class ExportPaperServiceImpl implements ExportPaperService{
 			downJson(paper,zipFileName);
 		}
 		if(exportContentList.indexOf("PAPER")>-1){
-			exportPaperAbstractService.downloadPaper(paperId,zipFileName);
+			exportPaperAbstractService.downloadPaper(paperId,zipFileName,examType);
 		}
 		if(exportContentList.indexOf("ANSWER")>-1){
 			exportPaperAbstractService.downloadPaperAnswer(paperId,zipFileName);
 		}
 		//下载考试说明	2018-2-27	weiwehai
-		if(StringUtils.isNotBlank(paper.getExamRemark())){
+		if(examType.equals("offLine") && StringUtils.isNotBlank(paper.getExamRemark())){
 			downExamRemark(paper,zipFileName);
 		}
 		FileDisposeUtil.fileToZip(TEMP_FILE_EXP+File.separator+zipFileName,TEMP_FILE_EXP,zipFileName);
@@ -357,7 +357,7 @@ public class ExportPaperServiceImpl implements ExportPaperService{
     }
 
 	@Override
-	public void exportPaperFiles(List<String> paperIds,String serviceName,String exportContentList, HttpServletResponse response,String loginName) throws Exception {
+	public void exportPaperFiles(List<String> paperIds,String serviceName,String exportContentList, HttpServletResponse response,String loginName,String examType) throws Exception {
 		ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(serviceName);
 		//根据试卷id查询所有试卷
 		List<Paper> papers = CommonUtils.toList(paperRepo.findAll(paperIds));
@@ -370,7 +370,7 @@ public class ExportPaperServiceImpl implements ExportPaperService{
 		//下载试卷
 		if(exportContentList.indexOf("PAPER")>-1){
 			for(Paper paper:papers){
-				exportPaperAbstractService.downloadPaper(paper.getId(),zipFileName);
+				exportPaperAbstractService.downloadPaper(paper.getId(),zipFileName,examType);
 			}
 		}
 		//下载答案

+ 8 - 6
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExportPaperController.java

@@ -47,16 +47,17 @@ public class ExportPaperController {
      * @return
      */
     @ApiOperation(value="导出试卷",notes="导出试卷")
-    @GetMapping(value = "/paper/export/{id}/{exportContentList}/{orgName}/{loginName}")
+    @GetMapping(value = "/paper/export/{id}/{exportContentList}/{orgName}/{loginName}/{examType}")
     public void getPaperById(HttpServletRequest request, HttpServletResponse response,
     						 @PathVariable String id,
     						 @PathVariable String orgName,
     						 @PathVariable String exportContentList,
-    						 @PathVariable String loginName){
+    						 @PathVariable String loginName,
+    						 @PathVariable String examType){
     	log.info("导出开始");
     	try {
     		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(orgName);
-    		exportPaperService.exportPaperFile(id,esm.getExportServiceName(),exportContentList,response,loginName);
+    		exportPaperService.exportPaperFile(id,esm.getExportServiceName(),exportContentList,response,loginName,examType);
 		} catch (Exception e) {
 			e.printStackTrace();
 	        log.error("导出异常:"+e.getMessage());
@@ -74,17 +75,18 @@ public class ExportPaperController {
      * @param loginName
      */
     @ApiOperation(value="批量导出试卷", notes="批量导出")
-    @GetMapping(value = "/paper/batch_export/{paperIds}/{exportContentList}/{orgName}/{loginName}")
+    @GetMapping(value = "/paper/batch_export/{paperIds}/{exportContentList}/{orgName}/{loginName}/{examType}")
     public void getPaperByIds(HttpServletRequest request ,HttpServletResponse response,
     						  @PathVariable String paperIds,
     						  @PathVariable String orgName,
     						  @PathVariable String exportContentList,
-    						  @PathVariable String loginName){
+    						  @PathVariable String loginName,
+    						  @PathVariable String examType){
     	log.info("批量导出");
     	List<String> paperList = Stream.of(paperIds.split(",")).collect(Collectors.toList());
     	ExportServiceManage esm = exportServiceManageRepo.findByOrgName(orgName);
     	try {
-			exportPaperService.exportPaperFiles(paperList,esm.getExportServiceName(), exportContentList, response, loginName);
+			exportPaperService.exportPaperFiles(paperList,esm.getExportServiceName(),exportContentList, response, loginName,examType);
 		} catch (Exception e) {
 			e.printStackTrace();
 			log.error("导出异常:"+e.getMessage());

+ 1 - 1
cqb-starter/src/test/java/com/qmth/cqb/ExtractConfigServiceTest.java

@@ -87,7 +87,7 @@ public class ExtractConfigServiceTest {
     			}
     			if(!paperIds.contains(paper.getId())){
     				System.out.println("当前正在导出ID:"+paper.getId());
-    				sddxExportPaperService.downloadPaper(paper.getId(), "shandong");
+    				sddxExportPaperService.downloadPaper(paper.getId(), "shandong","onLine");
     				writeToFile(sb.toString()+"\r\n"+paper.getId());
     			}
 			} catch (Exception e) {