Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > eeacaa4eb55fa544d622989e42fc27b1 > files > 142

libyate-devel-2.0.0-2mdv2009.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Yate: IAXEvent Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1IAXEvent.html">IAXEvent</a>
  </div>
</div>
<div class="contents">
<h1>IAXEvent Class Reference</h1><!-- doxytag: class="TelEngine::IAXEvent" -->Event class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="yateiax_8h-source.html">yateiax.h</a>&gt;</code>
<p>

<p>
<a href="classTelEngine_1_1IAXEvent-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a> { <br>
&nbsp;&nbsp;<b>Invalid</b> =  0, 
<b>Terminated</b>, 
<b>Timeout</b>, 
<b>NotImplemented</b>, 
<br>
&nbsp;&nbsp;<b>New</b>, 
<b>AuthReq</b>, 
<b>AuthRep</b>, 
<b>Accept</b>, 
<br>
&nbsp;&nbsp;<b>Hangup</b>, 
<b>Reject</b>, 
<b>Busy</b>, 
<b>Text</b>, 
<br>
&nbsp;&nbsp;<b>Dtmf</b>, 
<b>Noise</b>, 
<b>Answer</b>, 
<b>Quelch</b>, 
<br>
&nbsp;&nbsp;<b>Unquelch</b>, 
<b>Progressing</b>, 
<b>Ringing</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#9f5dbb9d8d6fec5b77be3099272b5a5c">~IAXEvent</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#fbd0fa31db28593e9669c3c56711c0a7">type</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#cb329726ce663d00b997df29a8b6e10e">local</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#32921c16f78fbf22e8f553ec5d355285">final</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#339ed32b2f06c48a1c1e5e59d4a08b1c">setFinal</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#a83ae5b784afe65ba2578b68baaf0df0">frameType</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#1e086f53ee60c383732c9477902841ac">subclass</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1IAXEngine.html">IAXEngine</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#79225998c9520ed88e238c4970bb41b4">getEngine</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#af8d0f2f26c62b7df9cfe588115788fe">getTransaction</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#7ead208cc3c358a799bef54f4529548e">getUserData</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1IAXIEList.html">IAXIEList</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#e715dc83a6e594302eb568d7516ad2f7">getList</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#a1086954cbd5788c7426cc6d14c6ba5b">IAXEvent</a> (<a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a> type, bool local, bool final, <a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a> *transaction, u_int8_t frameType=0, u_int32_t subclass=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1IAXEvent.html#61b63e1e90bdb9f6d1358cff4e4ac931">IAXEvent</a> (<a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a> type, bool local, bool final, <a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a> *transaction, const <a class="el" href="classTelEngine_1_1IAXFullFrame.html">IAXFullFrame</a> *frame=0)</td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="febc64cc2df79dd421f3822e6838752d"></a><!-- doxytag: member="TelEngine::IAXEvent::IAXTransaction" ref="febc64cc2df79dd421f3822e6838752d" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>IAXTransaction</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06c6a814d6a4d379655781e77e489a86"></a><!-- doxytag: member="TelEngine::IAXEvent::IAXConnectionlessTransaction" ref="06c6a814d6a4d379655781e77e489a86" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>IAXConnectionlessTransaction</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Event class. 
<p>
This class holds an event generated by a transaction <hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="1d1cfd8ffb84e947f82999c682b666a7"></a><!-- doxytag: member="TelEngine::IAXEvent::Type" ref="1d1cfd8ffb84e947f82999c682b666a7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Event type as enumeration 
</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="9f5dbb9d8d6fec5b77be3099272b5a5c"></a><!-- doxytag: member="TelEngine::IAXEvent::~IAXEvent" ref="9f5dbb9d8d6fec5b77be3099272b5a5c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="classTelEngine_1_1IAXEvent.html">IAXEvent</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor Dereferences the transaction possibly causing its destruction 
</div>
</div><p>
<a class="anchor" name="a1086954cbd5788c7426cc6d14c6ba5b"></a><!-- doxytag: member="TelEngine::IAXEvent::IAXEvent" ref="a1086954cbd5788c7426cc6d14c6ba5b" args="(Type type, bool local, bool final, IAXTransaction *transaction, u_int8_t frameType=0, u_int32_t subclass=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXEvent.html">IAXEvent</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>local</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>final</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a> *&nbsp;</td>
          <td class="paramname"> <em>transaction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int8_t&nbsp;</td>
          <td class="paramname"> <em>frameType</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&nbsp;</td>
          <td class="paramname"> <em>subclass</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Event type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>local</em>&nbsp;</td><td>Local flag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>final</em>&nbsp;</td><td>Final flag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transaction</em>&nbsp;</td><td>IAX transaction that generated the event </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>frameType</em>&nbsp;</td><td>The type of the frame that generated the event </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>subclass</em>&nbsp;</td><td>The subclass of the frame that generated the event </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="61b63e1e90bdb9f6d1358cff4e4ac931"></a><!-- doxytag: member="TelEngine::IAXEvent::IAXEvent" ref="61b63e1e90bdb9f6d1358cff4e4ac931" args="(Type type, bool local, bool final, IAXTransaction *transaction, const IAXFullFrame *frame=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXEvent.html">IAXEvent</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>local</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>final</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a> *&nbsp;</td>
          <td class="paramname"> <em>transaction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1IAXFullFrame.html">IAXFullFrame</a> *&nbsp;</td>
          <td class="paramname"> <em>frame</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Event type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>local</em>&nbsp;</td><td>Local flag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>final</em>&nbsp;</td><td>Final flag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>transaction</em>&nbsp;</td><td>IAX transaction that generated the event </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>frame</em>&nbsp;</td><td>The frame that generated the event </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="32921c16f78fbf22e8f553ec5d355285"></a><!-- doxytag: member="TelEngine::IAXEvent::final" ref="32921c16f78fbf22e8f553ec5d355285" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool final           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if this is a transaction finalization event <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the transaction has finalized and will be destroyed </dd></dl>

</div>
</div><p>
<a class="anchor" name="a83ae5b784afe65ba2578b68baaf0df0"></a><!-- doxytag: member="TelEngine::IAXEvent::frameType" ref="a83ae5b784afe65ba2578b68baaf0df0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int8_t frameType           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the type of the frame that generated the event If 0 (internal event), the event consumer must delete the event <dl class="return" compact><dt><b>Returns:</b></dt><dd>Frame type </dd></dl>

</div>
</div><p>
<a class="anchor" name="79225998c9520ed88e238c4970bb41b4"></a><!-- doxytag: member="TelEngine::IAXEvent::getEngine" ref="79225998c9520ed88e238c4970bb41b4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXEngine.html">IAXEngine</a>* getEngine           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the IAX engine this event belongs to, if any <dl class="return" compact><dt><b>Returns:</b></dt><dd>The IAX engine this event belongs to, if any </dd></dl>

</div>
</div><p>
<a class="anchor" name="e715dc83a6e594302eb568d7516ad2f7"></a><!-- doxytag: member="TelEngine::IAXEvent::getList" ref="e715dc83a6e594302eb568d7516ad2f7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXIEList.html">IAXIEList</a>&amp; getList           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the IE list <dl class="return" compact><dt><b>Returns:</b></dt><dd>IE list reference </dd></dl>

</div>
</div><p>
<a class="anchor" name="af8d0f2f26c62b7df9cfe588115788fe"></a><!-- doxytag: member="TelEngine::IAXEvent::getTransaction" ref="af8d0f2f26c62b7df9cfe588115788fe" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXTransaction.html">IAXTransaction</a>* getTransaction           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the IAX transaction that generated the event, if any <dl class="return" compact><dt><b>Returns:</b></dt><dd>The IAX transaction that generated the event, if any </dd></dl>

</div>
</div><p>
<a class="anchor" name="7ead208cc3c358a799bef54f4529548e"></a><!-- doxytag: member="TelEngine::IAXEvent::getUserData" ref="7ead208cc3c358a799bef54f4529548e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* getUserData           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the opaque user data stored in the transaction <dl class="return" compact><dt><b>Returns:</b></dt><dd>The opaque user data stored in the transaction </dd></dl>

</div>
</div><p>
<a class="anchor" name="cb329726ce663d00b997df29a8b6e10e"></a><!-- doxytag: member="TelEngine::IAXEvent::local" ref="cb329726ce663d00b997df29a8b6e10e" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool local           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if this is a locally generated event <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if it is a locally generated event </dd></dl>

</div>
</div><p>
<a class="anchor" name="339ed32b2f06c48a1c1e5e59d4a08b1c"></a><!-- doxytag: member="TelEngine::IAXEvent::setFinal" ref="339ed32b2f06c48a1c1e5e59d4a08b1c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setFinal           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the final flag. 
</div>
</div><p>
<a class="anchor" name="1e086f53ee60c383732c9477902841ac"></a><!-- doxytag: member="TelEngine::IAXEvent::subclass" ref="1e086f53ee60c383732c9477902841ac" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int32_t subclass           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the subclass of the frame that generated the event <dl class="return" compact><dt><b>Returns:</b></dt><dd>Frame subclass </dd></dl>

</div>
</div><p>
<a class="anchor" name="fbd0fa31db28593e9669c3c56711c0a7"></a><!-- doxytag: member="TelEngine::IAXEvent::type" ref="fbd0fa31db28593e9669c3c56711c0a7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1IAXEvent.html#1d1cfd8ffb84e947f82999c682b666a7">Type</a> type           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the type of this event <dl class="return" compact><dt><b>Returns:</b></dt><dd>The type of the event as enumeratio </dd></dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="yateiax_8h-source.html">yateiax.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:12 2008 for Yate by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>