<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="0"/>
<xsl:with-param name="exp" select="1"/>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="0"/>
<xsl:with-param name="exp" select="1"/>
<m:apply helm:xref="{@id}">
<m:minus definitionURL="{*[1]/@uri}" helm:xref="{*[1]/@id}"/>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<m:apply helm:xref="{@id}">
<m:minus definitionURL="{*[1]/@uri}" helm:xref="{*[1]/@id}"/>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:apply-templates select="." mode="Zpositive">
<xsl:with-param name="base" select="0"/>
<xsl:with-param name="exp" select="1"/>
<xsl:apply-templates select="." mode="Zpositive">
<xsl:with-param name="base" select="0"/>
<xsl:with-param name="exp" select="1"/>
<xsl:template match="*" mode="Zpositive">
<xsl:param name="base" select="0"/>
<xsl:param name="exp" select="1"/>
<xsl:param name="iden" select="''"/>
<xsl:choose>
<xsl:template match="*" mode="Zpositive">
<xsl:param name="base" select="0"/>
<xsl:param name="exp" select="1"/>
<xsl:param name="iden" select="''"/>
<xsl:choose>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="$base + $exp"/>
<xsl:with-param name="exp" select="2 * $exp"/>
<xsl:with-param name="iden" select="$iden"/>
</xsl:apply-templates>
</xsl:when>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="$base + $exp"/>
<xsl:with-param name="exp" select="2 * $exp"/>
<xsl:with-param name="iden" select="$iden"/>
</xsl:apply-templates>
</xsl:when>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="$base"/>
<xsl:with-param name="exp" select="2 * $exp"/>
<xsl:apply-templates select="*[2]" mode="Zpositive">
<xsl:with-param name="base" select="$base"/>
<xsl:with-param name="exp" select="2 * $exp"/>