<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SslDomain (Qpid Proton-J API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SslDomain (Qpid Proton-J API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/qpid/proton/engine/Ssl.html" title="interface in org.apache.qpid.proton.engine"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Factory.html" title="class in org.apache.qpid.proton.engine"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/qpid/proton/engine/SslDomain.html" target="_top">Frames</a></li>
<li><a href="SslDomain.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.qpid.proton.engine</div>
<h2 title="Interface SslDomain" class="title">Interface SslDomain</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../../org/apache/qpid/proton/engine/ProtonJSslDomain.html" title="interface in org.apache.qpid.proton.engine">ProtonJSslDomain</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/qpid/proton/engine/impl/ssl/SslDomainImpl.html" title="class in org.apache.qpid.proton.engine.impl.ssl">SslDomainImpl</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">SslDomain</span></pre>
<div class="block">I store the details used to create SSL sessions.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Factory.html" title="class in org.apache.qpid.proton.engine">SslDomain.Factory</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Mode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.Mode</a></span></code>
<div class="block">Determines whether the endpoint acts as a client or server.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.VerifyMode</a></span></code>
<div class="block">Determines the level of peer validation.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#allowUnsecuredClient--">allowUnsecuredClient</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#allowUnsecuredClient-boolean-">allowUnsecuredClient</a></span>(boolean&nbsp;allowUnsecured)</code>
<div class="block">Permit a server to accept connection requests from non-SSL clients.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getCertificateFile--">getCertificateFile</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Mode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.Mode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getMode--">getMode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.VerifyMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getPeerAuthentication--">getPeerAuthentication</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getPrivateKeyFile--">getPrivateKeyFile</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getPrivateKeyPassword--">getPrivateKeyPassword</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>javax.net.ssl.SSLContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getSslContext--">getSslContext</a></span>()</code>
<div class="block">Returns the SSLContext set by <a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setSslContext-javax.net.ssl.SSLContext-"><code>setSslContext(SSLContext)</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#getTrustedCaDb--">getTrustedCaDb</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#init-org.apache.qpid.proton.engine.SslDomain.Mode-">init</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Mode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.Mode</a>&nbsp;mode)</code>
<div class="block">Initialize the ssl domain object.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setCredentials-java.lang.String-java.lang.String-java.lang.String-">setCredentials</a></span>(java.lang.String&nbsp;certificateFile,
              java.lang.String&nbsp;privateKeyFile,
              java.lang.String&nbsp;password)</code>
<div class="block">Set the certificate that identifies the local node to the remote.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setPeerAuthentication-org.apache.qpid.proton.engine.SslDomain.VerifyMode-">setPeerAuthentication</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.VerifyMode</a>&nbsp;mode)</code>
<div class="block">Configure the level of verification used on the peer certificate.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setSslContext-javax.net.ssl.SSLContext-">setSslContext</a></span>(javax.net.ssl.SSLContext&nbsp;sslContext)</code>
<div class="block">Sets an SSLContext for use when establishing SSL transport.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setTrustedCaDb-java.lang.String-">setTrustedCaDb</a></span>(java.lang.String&nbsp;certificateDb)</code>
<div class="block">Configure the set of trusted CA certificates used by this node to verify peers.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.qpid.proton.engine.SslDomain.Mode-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>void&nbsp;init(<a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Mode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.Mode</a>&nbsp;mode)</pre>
<div class="block">Initialize the ssl domain object.

 An SSL object be either an SSL server or an SSL client. It cannot be both. Those
 transports that will be used to accept incoming connection requests must be configured
 as an SSL server. Those transports that will be used to initiate outbound connections
 must be configured as an SSL client.</div>
</li>
</ul>
<a name="getMode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMode</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Mode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.Mode</a>&nbsp;getMode()</pre>
</li>
</ul>
<a name="setCredentials-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCredentials</h4>
<pre>void&nbsp;setCredentials(java.lang.String&nbsp;certificateFile,
                    java.lang.String&nbsp;privateKeyFile,
                    java.lang.String&nbsp;password)</pre>
<div class="block">Set the certificate that identifies the local node to the remote.

 This certificate establishes the identity for the local node. It will be sent to the
 remote if the remote needs to verify the identity of this node. This may be used for
 both SSL servers and SSL clients (if client authentication is required by the server).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>certificateFile</code> - path to file/database containing the identifying
 certificate.</dd>
<dd><code>privateKeyFile</code> - path to file/database containing the private key used to
 sign the certificate</dd>
<dd><code>password</code> - the password used to sign the key, else null if key is not
 protected.</dd>
</dl>
</li>
</ul>
<a name="getPrivateKeyFile--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrivateKeyFile</h4>
<pre>java.lang.String&nbsp;getPrivateKeyFile()</pre>
</li>
</ul>
<a name="getPrivateKeyPassword--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrivateKeyPassword</h4>
<pre>java.lang.String&nbsp;getPrivateKeyPassword()</pre>
</li>
</ul>
<a name="getCertificateFile--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCertificateFile</h4>
<pre>java.lang.String&nbsp;getCertificateFile()</pre>
</li>
</ul>
<a name="setTrustedCaDb-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrustedCaDb</h4>
<pre>void&nbsp;setTrustedCaDb(java.lang.String&nbsp;certificateDb)</pre>
<div class="block">Configure the set of trusted CA certificates used by this node to verify peers.

 If the local SSL client/server needs to verify the identity of the remote, it must
 validate the signature of the remote's certificate. This function sets the database of
 trusted CAs that will be used to verify the signature of the remote's certificate.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>certificateDb</code> - database of trusted CAs, used to authenticate the peer.</dd>
</dl>
</li>
</ul>
<a name="getTrustedCaDb--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrustedCaDb</h4>
<pre>java.lang.String&nbsp;getTrustedCaDb()</pre>
</li>
</ul>
<a name="setPeerAuthentication-org.apache.qpid.proton.engine.SslDomain.VerifyMode-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPeerAuthentication</h4>
<pre>void&nbsp;setPeerAuthentication(<a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.VerifyMode</a>&nbsp;mode)</pre>
<div class="block">Configure the level of verification used on the peer certificate.

 This method controls how the peer's certificate is validated, if at all. By default,
 neither servers nor clients attempt to verify their peers (<a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html#ANONYMOUS_PEER"><code>SslDomain.VerifyMode.ANONYMOUS_PEER</code></a>).
 Once certificates and trusted CAs are configured, peer verification can be enabled.

 In order to verify a peer, a trusted CA must be configured. See
 <a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setTrustedCaDb-java.lang.String-"><code>setTrustedCaDb(String)</code></a>.

 NOTE: Servers must provide their own certificate when verifying a peer. See
 <a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setCredentials-java.lang.String-java.lang.String-java.lang.String-"><code>setCredentials(String, String, String)</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mode</code> - the level of validation to apply to the peer</dd>
</dl>
</li>
</ul>
<a name="getPeerAuthentication--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPeerAuthentication</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.VerifyMode.html" title="enum in org.apache.qpid.proton.engine">SslDomain.VerifyMode</a>&nbsp;getPeerAuthentication()</pre>
</li>
</ul>
<a name="allowUnsecuredClient-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowUnsecuredClient</h4>
<pre>void&nbsp;allowUnsecuredClient(boolean&nbsp;allowUnsecured)</pre>
<div class="block">Permit a server to accept connection requests from non-SSL clients.

 This configures the server to "sniff" the incoming client data stream, and dynamically
 determine whether SSL/TLS is being used. This option is disabled by default: only
 clients using SSL/TLS are accepted.</div>
</li>
</ul>
<a name="allowUnsecuredClient--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowUnsecuredClient</h4>
<pre>boolean&nbsp;allowUnsecuredClient()</pre>
</li>
</ul>
<a name="setSslContext-javax.net.ssl.SSLContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSslContext</h4>
<pre>void&nbsp;setSslContext(javax.net.ssl.SSLContext&nbsp;sslContext)</pre>
<div class="block">Sets an SSLContext for use when establishing SSL transport. Setting a context this way overrides alternate
 configuration that might otherwise have been used to create a context, such as key and trust store paths.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sslContext</code> - the context to use</dd>
</dl>
</li>
</ul>
<a name="getSslContext--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSslContext</h4>
<pre>javax.net.ssl.SSLContext&nbsp;getSslContext()</pre>
<div class="block">Returns the SSLContext set by <a href="../../../../../org/apache/qpid/proton/engine/SslDomain.html#setSslContext-javax.net.ssl.SSLContext-"><code>setSslContext(SSLContext)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the SSLContext, or null if none was set.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/qpid/proton/engine/Ssl.html" title="interface in org.apache.qpid.proton.engine"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/qpid/proton/engine/SslDomain.Factory.html" title="class in org.apache.qpid.proton.engine"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/qpid/proton/engine/SslDomain.html" target="_top">Frames</a></li>
<li><a href="SslDomain.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
