<?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet id="Data Type 3" 

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
 xmlns:msxsl="urn:schemas-microsoft-com:xslt"
 xmlns:user="urn:my-scripts"
 xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"

xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:exslt="http://exslt.org/common"

 version="1.0">
<xsl:output method="xml" indent="yes" />
	<!--  -->

<xsl:key name="stdrep" match="MasterPlexPlateData/BeadInfo[1]/StandardCurve/DataSeries/StdWell" use="@stdconc" />
<xsl:template match="/">
<xsl:for-each select="MasterPlexPlateData">
<!-- -->
 <xsl:variable name="MasterPlexPlateData"> 
<xsl:copy-of select="/" />

<xsl:for-each select="BeadInfo/StandardCurve/DataSeries/StdWell[generate-id(.)=generate-id(key('stdrep', @stdconc)[1])]">
	<xsl:sort select="@stdconc" data-type="number" order="descending"/>
 
	
	<xsl:element name="StandardGroup2">
		<xsl:attribute name="name">S<xsl:number value ="position()"/></xsl:attribute>	
			<xsl:for-each select="key('stdrep', @stdconc)">	
		
		<xsl:element name="GroupWell">	
				
				
						<xsl:attribute name="id"><xsl:value-of select="@wellid"/></xsl:attribute>
						<xsl:attribute name="stdconc"><xsl:value-of select="@stdconc"/></xsl:attribute>
					
					
			
					</xsl:element>
					</xsl:for-each>		
						</xsl:element>
			</xsl:for-each>					
<!-- 			-->			
 </xsl:variable> 
<!-- > <xsl:text disable-output-escaping="yes">&lt;?xml version="1.0" encoding="UTF-16"?&gt;</xsl:text> -->
 <xsl:text disable-output-escaping="yes">&lt;Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"&gt;</xsl:text>
  <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s64">
   <Font x:Family="Swiss" ss:Bold="1"/>
  </Style>
 </Styles>
 <!--FI-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">FI</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">FI</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">		
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 			
					<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@bkgvalue" /></xsl:call-template>			
				</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg + $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg + $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg + $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">FI</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	
	<xsl:for-each select="../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>
	<!--FI minus Background-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">FI-Bkgd</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">FI-Bkgd</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">		
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 			
					<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@bkgvalue" /></xsl:call-template>			
				</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@sampleavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">FI-Bkgd</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	
	<xsl:for-each select="../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi - $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi - $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@mfi - $bkgvalue" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>	
		<!--Std Dev-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">Std Dev</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Std Dev</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">	
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>	
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  	<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
  	<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@resstddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@resstddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@resstddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@resstddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Std Dev</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	


	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
    

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>	
		<!--%CV-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">%CV</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">%CV</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">	
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>	
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  	<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
  	<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@samplecv * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@samplecv * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@samplecv * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@samplecv * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">%CV</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	


	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
    

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>	
		<!--Obs Conc-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">Obs Conc</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Obs Conc</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">		
<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  <xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
  	<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
		
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@conavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@conavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@conavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@conavg" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Obs Conc</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:variable name="conc">
                  <xsl:choose>
                    <xsl:when test="@constr = ''">
                      <xsl:value-of select="@conc"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="@constr"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="$conc" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	
	<xsl:for-each select="../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
						<xsl:variable name="conc">
                  <xsl:choose>
                    <xsl:when test="@constr = ''">
                      <xsl:value-of select="@conc"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="@constr"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="$conc" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
					<xsl:variable name="conc">
                  <xsl:choose>
                    <xsl:when test="@constr = ''">
                      <xsl:value-of select="@conc"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="@constr"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="$conc" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      <xsl:for-each select="../../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
						<xsl:variable name="conc">
                  <xsl:choose>
                    <xsl:when test="@constr = ''">
                      <xsl:value-of select="@conc"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="@constr"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="$conc" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>
		<!--Obs Conc Std Dev-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">Obs Conc Std Dev</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Obs Conc Std Dev</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">	
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>	
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  	<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
  	<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@constddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@constddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@constddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		<xsl:for-each select="../../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@constddev" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Obs Conc Std Dev</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	


	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
    

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
					<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>	
		<!--Exp Conc-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">Exp Conc</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Exp COnc</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">	
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>	
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  	
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo/StandardCurve/DataSeries"> 
		<xsl:for-each select="StdWell[@wellid=$GroupWellID]">
		
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@stdconc" /></xsl:call-template>
		</xsl:for-each>
		</xsl:for-each>	


	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
	

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
	

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">Exp Conc</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	
<xsl:for-each select="../../MasterPlexPlateData/BeadInfo/StandardCurve/DataSeries"> 
		<xsl:for-each select="StdWell[@wellid=$GroupWellID]">
		
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="@stdconc" /></xsl:call-template>
		</xsl:for-each>
		</xsl:for-each>	

	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
    

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
					
					<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row>
					
					<Row />
					
	</Table>
	</xsl:element>	
		<!--(Obs Exp)X 100-->
 
		 
		<xsl:element name="Worksheet">
			 <xsl:attribute name="ss:Name">(Obs Exp)X 100</xsl:attribute>
			  <xsl:apply-templates /> 
		 <Table>
<xsl:for-each select="/MasterPlexPlateData"> 	 
		 <Row>
		    <Cell ss:StyleID="s64"><Data ss:Type="String">File Name: <xsl:value-of select="FileName"/></Data></Cell>
		   </Row>
       
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Acquisition Date: <xsl:value-of select="RunDate"/>, <xsl:value-of select="../RunTime"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Reader Serial Number: <xsl:value-of select="LXHWSN"/></Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Plate ID: <xsl:value-of select="PlateName"/></Data></Cell>
        </Row>
        	</xsl:for-each>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 PMT (Volts):</Data></Cell>
        </Row>
        <Row>
        <Cell ss:StyleID="s64"><Data ss:Type="String">RP1 Target:</Data></Cell>
        </Row>
	         <Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">(Obs Exp)*100</Data></Cell> 
			</xsl:for-each>
        
     
        </Row>

	<!-- Background Group Replicate-->
<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup">		
<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> </Data></Cell>	
  
	</Row>
	</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2">
	<xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
	<xsl:variable name="exp"><xsl:value-of select="/MasterPlexPlateData/BeadInfo/StandardCurve/DataSeries/StdWell[@wellid=$GroupWellID]/@stdconc" /> 
	</xsl:variable>	
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
			<xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>	
	<xsl:for-each select="../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="(@conavg div $exp) * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->	
<!-- Controls -->
<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup">
  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after($groupname,'Ctl ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown Replicates -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup">
			  <xsl:variable name="GroupWellID"><xsl:value-of select="GroupWell[1]/@id"/></xsl:variable>
  <xsl:variable name="groupname"><xsl:value-of select="@name"/></xsl:variable>
  <Row>
    <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after($groupname,'Unk ')"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:for-each select="GroupWell"><xsl:variable name="well"><xsl:value-of select="@id"/></xsl:variable>
					  
					  	<xsl:value-of select="../../../Well[@wellid = $well]/@addr"/><xsl:text> </xsl:text>
					  	</xsl:for-each> 
					  	</Data></Cell>
		

	</Row>
</xsl:for-each>
	<!-- End Unknown Replicates -->
	
		<!-- Start Single Wells -->

	
<Row />
<Row />
	       <Row>
	       
	       <Cell ss:Index="2"/>
	        <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String"><xsl:value-of select="@beadname"/></Data></Cell> 
			</xsl:for-each>
			</Row>	
	        <Row>
        
        <Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
        <Cell ss:StyleID="s64"><Data ss:Type="String">Well</Data></Cell>
        
       <xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/MasterPlexPlateData/BeadInfo"> 
				<Cell ss:StyleID="s64"><Data ss:Type="String">(Obs Exp)*100</Data></Cell> 
			</xsl:for-each>
     
        </Row>
      <!-- Background Group -->  
        
	
	<xsl:for-each select="/MasterPlexPlateData/BkgGroupList/BkgGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">B</Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
      

	</Row>
</xsl:for-each>
	
	<!-- End Background Group -->
<!-- Standard Group 1-->
<xsl:for-each select="msxsl:node-set($MasterPlexPlateData)/StandardGroup2/GroupWell">
	<xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	<xsl:variable name="exp"><xsl:value-of select="/MasterPlexPlateData/BeadInfo/StandardCurve/DataSeries/StdWell[@wellid=$GroupWellID]/@stdconc" /> 
	</xsl:variable>
	
	<Row>			  	
      	<Cell><Data ss:Type="String"><xsl:value-of select="../@name"/></Data></Cell>
		<Cell><Data ss:Type="String"><xsl:value-of select="/MasterPlexPlateData/Well[@wellid = $GroupWellID]/@addr"/>
					  	</Data></Cell>	
	<xsl:for-each select="../../MasterPlexPlateData/BeadInfo"> 
		<xsl:variable name="AnalyteName"><xsl:value-of select="@beadname"/></xsl:variable> 
		<xsl:variable name="BeadNumber"><xsl:value-of select="@id"/></xsl:variable> 
		<xsl:variable name="bkgvalue"><xsl:value-of select="@bkgvalue"/></xsl:variable> 			  	
		<xsl:for-each select="/MasterPlexPlateData/Well[@wellid=$GroupWellID]/Bead[@id=$BeadNumber]">
						<xsl:variable name="conc">
                  <xsl:choose>
                    <xsl:when test="@constr = ''">
                      <xsl:value-of select="@conc"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="@constr"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
			<xsl:call-template name="stringtest"><xsl:with-param name="string" select="($conc div $exp) * 100" /></xsl:call-template>
		</xsl:for-each>	
	</xsl:for-each>

	</Row>
</xsl:for-each>
<!-- End Standard Group -->		
	
		<!-- Controls -->
	
		
		<xsl:for-each select="/MasterPlexPlateData/ControlGroupList/ControlGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">C<xsl:value-of select="substring-after(../@name,'Ctl ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
			
     

	</Row>
</xsl:for-each>
	<!-- End Controls -->
	<!-- Start Unknown -->

	<xsl:for-each select="/MasterPlexPlateData/UnknowGroupList/UnknowGroup/GroupWell">
	 <xsl:variable name="GroupWellID"><xsl:value-of select="@id"/></xsl:variable>
	 <Row>      
        <Cell><Data ss:Type="String">X<xsl:value-of select="substring-after(../@name,'Unk ')"/></Data></Cell>
        <Cell><Data ss:Type="String"><xsl:value-of select="../../../Well[@wellid=$GroupWellID]/@addr" /></Data></Cell>
	

	</Row>
</xsl:for-each>

	<!-- End Unknown  -->
	<Row />
				<Row>	<Cell><Data ss:Type="String">***Value not available / --- = Designated as an outlier</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">*Value extrapolated beyond standard range</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">OOR = Out of Range / OOR&gt; = Out of Range Above  / OOR&lt; = Out of Range Below</Data></Cell>	</Row>
					<Row>	<Cell><Data ss:Type="String">Exp Conc = Expected Concentration  /  Obs Conc = Observed  Concentration</Data></Cell>	</Row><Row />
					
	</Table>
	</xsl:element>
	</xsl:for-each> 
	 <xsl:text disable-output-escaping="yes">&lt;/Workbook&gt;</xsl:text>
	<!--</Workbook> -->
	
</xsl:template>

<xsl:template name="Scientific">
	<xsl:param name="Num"/>
	<xsl:if test="boolean(number(substring-after($Num,'E')))">
		<xsl:call-template name="Scientific_Helper">
			<xsl:with-param name="m" select="substring-before($Num,'E')"/>
			<xsl:with-param name="e" select="substring-after($Num,'E')"/>
		</xsl:call-template>
	</xsl:if>
	<xsl:if test="not(boolean(number(substring-after($Num,'E'))))">
		<xsl:value-of select='format-number($Num, "#.00")'/>
	</xsl:if>
</xsl:template>

<xsl:template name="Scientific_Helper">
	<xsl:param name="m"/>
	<xsl:param name="e"/>
	<xsl:choose>
		<xsl:when test="$e = 0 or not(boolean($e))">
			<xsl:value-of select='format-number($m, "#.00")'/>
		</xsl:when>
		<xsl:when test="$e &gt; 0">
			<xsl:call-template name="Scientific_Helper">
				<xsl:with-param name="m" select="$m * 10"/>
				<xsl:with-param name="e" select="$e - 1"/>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$e &lt; 0">
			<xsl:call-template name="Scientific_Helper">
				<xsl:with-param name="m" select="$m div 10"/>
				<xsl:with-param name="e" select="$e + 1"/>
			</xsl:call-template>
		</xsl:when>
	</xsl:choose>
</xsl:template>

<xsl:template name="calc_variance">
  <xsl:param name="nodes" />
  <xsl:param name="sum" />
  <xsl:param name="sum-sq" />
  <xsl:param name="count" />
  <xsl:param name="mcparam" />

  <xsl:choose>
    <xsl:when test="not($nodes)">
      <xsl:variable name="variancenum"><xsl:value-of select="($sum-sq - ($sum * $sum) div $count) div ($count - 1)"/></xsl:variable> 
	<!--<xsl:text>Variance=</xsl:text><xsl:value-of select="$variancenum" /><xsl:text>,</xsl:text>-->

	<xsl:call-template name="sqrt">	
		<xsl:with-param name="num" select="$variancenum"/>
		<xsl:with-param name="meanconcparam2" select="$mcparam"/>
	</xsl:call-template>

    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="value" select="$nodes[1]"/>
      <xsl:call-template name="calc_variance">
        <xsl:with-param name="nodes" select="$nodes[position( ) != 1]"/>
        <xsl:with-param name="sum" select="$sum + $value"/>
        <xsl:with-param name="sum-sq" select="$sum-sq + ($value * $value)"/>
        <xsl:with-param name="count" select="$count + 1"/>
	  <xsl:with-param name="mcparam" select="$mcparam"/>

      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template name="stringtest">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="starts-with($string, 'NaN')">
<Cell><Data ss:Type="String">***</Data></Cell>
</xsl:when>
<xsl:when test="starts-with($string, 'Infinity')">
<Cell><Data ss:Type="String">***</Data></Cell>
</xsl:when>
<xsl:when test="starts-with($string, '-Infinity')">
<Cell><Data ss:Type="String">***</Data></Cell>
</xsl:when>
<xsl:when test="starts-with($string, '&lt;')">
<Cell><Data ss:Type="String">OOR &lt;</Data></Cell>
</xsl:when>
<xsl:when test="starts-with($string, '&gt;')">
<Cell><Data ss:Type="String">OOR &gt;</Data></Cell>
</xsl:when>
<xsl:otherwise>
<Cell><Data ss:Type="Number"><xsl:call-template name="Scientific">
						<xsl:with-param name="Num" select="$string" />
					</xsl:call-template></Data></Cell>
</xsl:otherwise>					
</xsl:choose>
</xsl:template>

<xsl:template name="sqrt">
   <xsl:param name="num" select="0"/>  <!-- The number you want to find the square root of -->
   <xsl:param name="try" select="1"/>  <!-- The current 'try'.  This is used  internally. -->
   <xsl:param name="iter" select="1"/> <!-- The current iteration, checked against maxiter to limit loop count -->
   <xsl:param name="maxiter" select="10"/>  <!-- Set this up to insure  against infinite loops -->

   <!-- This template was written by Nate Austin using Sir Isaac Newton's
 method of finding roots -->

   <xsl:choose>
     <xsl:when test="$try * $try = $num or $iter &gt; $maxiter">
       <xsl:value-of select="$try"/>
     </xsl:when>
     <xsl:otherwise>
       <xsl:call-template name="sqrt">
         <xsl:with-param name="num" select="$num"/>
         <xsl:with-param name="try" select="$try - (($try * $try - $num) div (2 * $try))"/>
         <xsl:with-param name="iter" select="$iter + 1"/>
         <xsl:with-param name="maxiter" select="$maxiter"/>
       </xsl:call-template>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>


</xsl:stylesheet>
<!-- Hitachi Software Engineering America, Ltd -->
<!-- MiraiBio Group  (date) 10.3.2008          -->

