blob: cbb9c8440c468c5957d96b0fc9fffa644c434b58 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_18) on Sun Apr 01 21:18:30 PDT 2012 -->
<TITLE>
DTMAxisTraverser
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xml.dtm.DTMAxisTraverser class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="DTMAxisTraverser";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DTMAxisTraverser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/xml/dtm/DTMAxisIterator.html" title="interface in org.apache.xml.dtm"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xml/dtm/DTMConfigurationException.html" title="class in org.apache.xml.dtm"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/xml/dtm/DTMAxisTraverser.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="DTMAxisTraverser.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.xml.dtm</FONT>
<BR>
Class DTMAxisTraverser</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.xml.dtm.DTMAxisTraverser</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.AncestorTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.AncestorTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.AttributeTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.AttributeTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.ChildTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.ChildTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.FollowingSiblingTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.FollowingSiblingTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.IndexedDTMAxisTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.IndexedDTMAxisTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.NamespaceDeclsTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.NamespaceDeclsTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.NamespaceTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.NamespaceTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.ParentTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.ParentTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.PrecedingAndAncestorTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.PrecedingAndAncestorTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.PrecedingSiblingTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.PrecedingSiblingTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.PrecedingTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.PrecedingTraverser</A>, <A HREF="../../../../org/apache/xml/dtm/ref/DTMDefaultBaseTraversers.SelfTraverser.html" title="class in org.apache.xml.dtm.ref">DTMDefaultBaseTraversers.SelfTraverser</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.44"><B>DTMAxisTraverser</B></A><DT>extends java.lang.Object</DL>
</PRE>
<P>
A class that implements traverses DTMAxisTraverser interface can traverse
a set of nodes, usually as defined by an XPath axis. It is different from
an iterator, because it does not need to hold state, and, in fact, must not
hold any iteration-based state. It is meant to be implemented as an inner
class of a DTM, and returned by the getAxisTraverser(final int axis)
function.
<p>A DTMAxisTraverser can probably not traverse a reverse axis in
document order.</p>
<p>Typical usage:</p>
<pre><code>
for(int nodeHandle=myTraverser.first(myContext);
nodeHandle!=DTM.NULL;
nodeHandle=myTraverser.next(myContext,nodeHandle))
{ ... processing for node indicated by nodeHandle goes here ... }
</code></pre>
<P>
<P>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#DTMAxisTraverser()">DTMAxisTraverser</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#first(int)">first</A></B>(int&nbsp;context)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By the nature of the stateless traversal, the context node can not be
returned or the iteration will go into an infinate loop.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#first(int, int)">first</A></B>(int&nbsp;context,
int&nbsp;extendedTypeID)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By the nature of the stateless traversal, the context node can not be
returned or the iteration will go into an infinate loop.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#next(int, int)">next</A></B>(int&nbsp;context,
int&nbsp;current)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverse to the next node after the current node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#next(int, int, int)">next</A></B>(int&nbsp;context,
int&nbsp;current,
int&nbsp;extendedTypeID)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traverse to the next node after the current node that is matched
by the extended type ID.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="DTMAxisTraverser()"><!-- --></A><H3>
DTMAxisTraverser</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.44"><B>DTMAxisTraverser</B></A>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="first(int)"><!-- --></A><H3>
first</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.59"><B>first</B></A>(int&nbsp;context)</PRE>
<DL>
<DD>By the nature of the stateless traversal, the context node can not be
returned or the iteration will go into an infinate loop. So to traverse
an axis, the first function must be used to get the first node.
<p>This method needs to be overloaded only by those axis that process
the self node. <\p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The context node of this traversal. This is the point
that the traversal starts from.
<DT><B>Returns:</B><DD>the first node in the traversal.</DL>
</DD>
</DL>
<HR>
<A NAME="first(int, int)"><!-- --></A><H3>
first</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.78"><B>first</B></A>(int&nbsp;context,
int&nbsp;extendedTypeID)</PRE>
<DL>
<DD>By the nature of the stateless traversal, the context node can not be
returned or the iteration will go into an infinate loop. So to traverse
an axis, the first function must be used to get the first node.
<p>This method needs to be overloaded only by those axis that process
the self node. <\p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.<DD><CODE>extendedTypeID</CODE> - The extended type ID that must match.
<DT><B>Returns:</B><DD>the first node in the traversal.</DL>
</DD>
</DL>
<HR>
<A NAME="next(int, int)"><!-- --></A><H3>
next</H3>
<PRE>
public abstract int <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.97"><B>next</B></A>(int&nbsp;context,
int&nbsp;current)</PRE>
<DL>
<DD>Traverse to the next node after the current node.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.<DD><CODE>current</CODE> - The current node of the traversal. This is the last known
location in the traversal, typically the node-handle returned by the
previous traversal step. For the first traversal step, context
should be set equal to current. Note that in order to test whether
context is in the set, you must use the first() method instead.
<DT><B>Returns:</B><DD>the next node in the iteration, or DTM.NULL.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#first(int)"><CODE>first(int)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="next(int, int, int)"><!-- --></A><H3>
next</H3>
<PRE>
public abstract int <A HREF="../../../../src-html/org/apache/xml/dtm/DTMAxisTraverser.html#line.115"><B>next</B></A>(int&nbsp;context,
int&nbsp;current,
int&nbsp;extendedTypeID)</PRE>
<DL>
<DD>Traverse to the next node after the current node that is matched
by the extended type ID.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.<DD><CODE>current</CODE> - The current node of the traversal. This is the last known
location in the traversal, typically the node-handle returned by the
previous traversal step. For the first traversal step, context
should be set equal to current. Note that in order to test whether
context is in the set, you must use the first() method instead.<DD><CODE>extendedTypeID</CODE> - The extended type ID that must match.
<DT><B>Returns:</B><DD>the next node in the iteration, or DTM.NULL.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xml/dtm/DTMAxisTraverser.html#first(int, int)"><CODE>first(int,int)</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DTMAxisTraverser.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/xml/dtm/DTMAxisIterator.html" title="interface in org.apache.xml.dtm"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xml/dtm/DTMConfigurationException.html" title="class in org.apache.xml.dtm"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/xml/dtm/DTMAxisTraverser.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="DTMAxisTraverser.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>