<?xml version='1.0' encoding='utf-8' ?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0"><xsl:output method="html"/>


 <xsl:template name="binSearch">
  <xsl:param name="argNumber" select="-Infinity"/>
  <xsl:param name="sortedEls" />
  <xsl:param name="First" select="Infinity"/>
  <xsl:param name="Last" select="0"/>
  <xsl:param name="SortLen" select="9"/>


  <xsl:choose>
   <xsl:when test="$First > $Last">
   	<xsl:value-of select="$Last"/>
   </xsl:when>
   <xsl:otherwise>
 		 <xsl:variable name="Mid" select="floor(($First + $Last) div 2)"/>
 		 <xsl:variable name="midElement"
 		  		 	select="substring($sortedEls, $SortLen * ($Mid - 1) + 2, ($SortLen - 1))"/>

 		 <xsl:choose>
      <xsl:when test="$argNumber = $midElement">
       <xsl:value-of select="$Mid"/>
      </xsl:when>
      <xsl:when test="$argNumber &lt; $midElement">
       <xsl:choose>
        <xsl:when test="$First &lt; $Last">
       		<xsl:call-template name="binSearch">
   					<xsl:with-param name="argNumber" select="$argNumber"/>
   					<xsl:with-param name="sortedEls" select="$sortedEls"/>
   					<xsl:with-param name="First" select="$First"/>
   					<xsl:with-param name="Last" select="$Mid - 1"/>
					<xsl:with-param name="SortLen" select="$SortLen"/>
       		</xsl:call-template>
       	</xsl:when>
       	<xsl:otherwise><!-- First = Last and the comparison is lt -->
         <xsl:value-of select="$First - 1"/>
       	</xsl:otherwise>
       </xsl:choose>
      </xsl:when>
      <xsl:when test="$argNumber > $midElement">
       <xsl:choose>
        <xsl:when test="$First &lt; $Last">
       		<xsl:call-template name="binSearch">
   					<xsl:with-param name="argNumber" select="$argNumber"/>
   					<xsl:with-param name="sortedEls" select="$sortedEls"/>
   					<xsl:with-param name="First" select="$Mid + 1"/>
   					<xsl:with-param name="Last" select="$Last"/>
					<xsl:with-param name="SortLen" select="$SortLen"/>
     			</xsl:call-template>
       	</xsl:when>
       	<xsl:otherwise><!-- First = Last and the comparison is gt -->
         <xsl:value-of select="$Last + 1"/>
       	</xsl:otherwise>
       </xsl:choose>
			</xsl:when>
      <xsl:otherwise>
        ERRROR
      </xsl:otherwise>

 		 </xsl:choose>
   </xsl:otherwise>


   </xsl:choose>
</xsl:template>
</xsl:stylesheet>
<!-- Stylus Studio meta-information - (c)1998-2001 eXcelon Corp.
<metaInformation>
<scenarios/>
</metaInformation>
-->

