phasicFlow/doc/code-documentation/html/NBSLoop_8hpp.html

257 lines
21 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.">
<title>PhasicFlow: src/Interaction/contactSearch/methods/cellBased/NBS/NBSLoop.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('NBSLoop_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">NBSLoop.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="NBSLoop_8hpp__dep__incl.png" border="0" usemap="#src_2Interaction_2contactSearch_2methods_2cellBased_2NBS_2NBSLoop_8hppdep" alt=""/></div>
</div>
</div>
<p><a href="NBSLoop_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ae5f838cdb51aca1b3142dd96631de29b"><td class="memItemLeft" align="right" valign="top">int32x3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="NBSLoop_8hpp.html#ae5f838cdb51aca1b3142dd96631de29b">currentCell</a> (i, j, k)</td></tr>
<tr class="separator:ae5f838cdb51aca1b3142dd96631de29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7651bcb0a8430a82f32e506eacfc0468"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="NBSLoop_8hpp.html#a7651bcb0a8430a82f32e506eacfc0468">while</a> (<a class="el" href="NBSLoop_8hpp.html#a0ece545b36c74171628b3bd219848edc">m</a> !=mapperNBS::NoPos)</td></tr>
<tr class="separator:a7651bcb0a8430a82f32e506eacfc0468"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a0ece545b36c74171628b3bd219848edc"><td class="memItemLeft" align="right" valign="top">uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="NBSLoop_8hpp.html#a0ece545b36c74171628b3bd219848edc">m</a> = cellIter.start(i,j,k)</td></tr>
<tr class="separator:a0ece545b36c74171628b3bd219848edc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58f1256fe216b2e84819aa621b683de1"><td class="memItemLeft" align="right" valign="top">uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="NBSLoop_8hpp.html#a58f1256fe216b2e84819aa621b683de1">n</a> = mapperNBS::NoPos</td></tr>
<tr class="separator:a58f1256fe216b2e84819aa621b683de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ae5f838cdb51aca1b3142dd96631de29b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5f838cdb51aca1b3142dd96631de29b">&#9670;&nbsp;</a></span>currentCell()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32x3 currentCell </td>
<td>(</td>
<td class="paramtype">i&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">j&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">k&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="NBSLoop_8hpp_source.html#l00026">while()</a>.</p>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="NBSLoop_8hpp_ae5f838cdb51aca1b3142dd96631de29b_icgraph.png" border="0" usemap="#NBSLoop_8hpp_ae5f838cdb51aca1b3142dd96631de29b_icgraph" alt=""/></div>
</div>
</div>
</div>
<a id="a7651bcb0a8430a82f32e506eacfc0468"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7651bcb0a8430a82f32e506eacfc0468">&#9670;&nbsp;</a></span>while()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">while </td>
<td>(</td>
<td class="paramtype"><a class="el" href="NBSLoop_8hpp.html#a0ece545b36c74171628b3bd219848edc">m</a> !&#160;</td>
<td class="paramname"> = <code>mapperNBS::NoPos</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NBSLoop_8hpp_source.html#l00026">26</a> of file <a class="el" href="NBSLoop_8hpp_source.html">NBSLoop.hpp</a>.</p>
<p class="reference">References <a class="el" href="NBSLoop_8hpp.html#ae5f838cdb51aca1b3142dd96631de29b">currentCell()</a>, <a class="el" href="NBSLoop_8hpp_source.html#l00022">m</a>, <a class="el" href="NBSLoop_8hpp_source.html#l00024">n</a>, <a class="el" href="NBSLevel0Kernels_8hpp_source.html#l00046">pFlow::NBSLevel0Kernels::sphereSphereCheck()</a>, and <a class="el" href="NBSLevel0Kernels_8hpp_source.html#l00038">pFlow::NBSLevel0Kernels::Swap()</a>.</p>
<div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><img src="NBSLoop_8hpp_a7651bcb0a8430a82f32e506eacfc0468_cgraph.png" border="0" usemap="#NBSLoop_8hpp_a7651bcb0a8430a82f32e506eacfc0468_cgraph" alt=""/></div>
</div>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a0ece545b36c74171628b3bd219848edc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ece545b36c74171628b3bd219848edc">&#9670;&nbsp;</a></span>m</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32 m = cellIter.start(i,j,k)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NBSLoop_8hpp_source.html#l00022">22</a> of file <a class="el" href="NBSLoop_8hpp_source.html">NBSLoop.hpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="sphereParticles_8cpp_source.html#l00259">sphereParticles::getParticlesInfoFromShape()</a>, <a class="el" href="grainParticles_8cpp_source.html#l00088">grainParticles::getParticlesInfoFromShape()</a>, <a class="el" href="sphereShape_8cpp_source.html#l00108">sphereShape::mass()</a>, <a class="el" href="grainShape_8cpp_source.html#l00150">grainShape::mass()</a>, <a class="el" href="hashMapI_8hpp_source.html#l00068">printKeys()</a>, <a class="el" href="MapPtr_8hpp_source.html#l00240">pFlow::printKeys()</a>, and <a class="el" href="NBSLoop_8hpp_source.html#l00026">while()</a>.</p>
</div>
</div>
<a id="a58f1256fe216b2e84819aa621b683de1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58f1256fe216b2e84819aa621b683de1">&#9670;&nbsp;</a></span>n</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32 n = mapperNBS::NoPos</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NBSLoop_8hpp_source.html#l00024">24</a> of file <a class="el" href="NBSLoop_8hpp_source.html">NBSLoop.hpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="internalPoints_8cpp_source.html#l00222">internalPoints::activePointsHost()</a>, <a class="el" href="internalField_8cpp_source.html#l00134">internalField&lt; realx3, void &gt;::activeValuesHost()</a>, <a class="el" href="geometry_8cpp_source.html#l00275">geometry::afterIteration()</a>, <a class="el" href="symArrayHD_8hpp_source.html#l00175">symArray&lt; nonLinearProperties &gt;::assign()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00386">VectorSingle&lt; uint32, HostSpace &gt;::assign()</a>, <a class="el" href="wordVectorHost_8hpp_source.html#l00305">VectorSingle&lt; word, HostSpace &gt;::assign()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00481">VectorDual&lt; multiRotatingAxis &gt;::assign()</a>, <a class="el" href="ppwBndryContactSearch_8cpp_source.html#l00026">ppwBndryContactSearch::buildList()</a>, <a class="el" href="ppwBndryContactSearchKernels_8cpp_source.html#l00010">pFlow::pweBndryContactSearchKernels::buildNextHead()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00040">VectorSingle&lt; uint32, HostSpace &gt;::changeCapacitySize()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00024">VectorSingle&lt; uint32, HostSpace &gt;::changeSize()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00129">VectorDual&lt; multiRotatingAxis &gt;::changeSize()</a>, <a class="el" href="ppwBndryContactSearch_8cpp_source.html#l00007">ppwBndryContactSearch::checkAllocateNext()</a>, <a class="el" href="collisionCheck_8cpp_source.html#l00046">collisionCheck::checkPoint()</a>, <a class="el" href="pointFlagKernels_8hpp_source.html#l00221">pointFlag&lt; DefaultHostExecutionSpace &gt;::deletePoints()</a>, <a class="el" href="VectorSingle_8hpp_source.html#l00104">VectorSingle&lt; uint32, HostSpace &gt;::evalCapacity()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00123">VectorDual&lt; multiRotatingAxis &gt;::evalCapacity()</a>, <a class="el" href="VectorAlgorithm_8hpp_source.html#l00038">pFlow::fill_n()</a>, <a class="el" href="geometryMotion_8cpp_source.html#l00022">geometryMotion&lt; MotionModelType &gt;::findMotionIndex()</a>, <a class="el" href="cellsWallLevel0_8cpp_source.html#l00151">cellsWallLevel0::findPairsElementRangeCount()</a>, <a class="el" href="scatteredFieldAccess_8hpp_source.html#l00145">scatteredFieldAccess&lt; T, MemorySpace &gt;::getFirstCopy()</a>, <a class="el" href="scatteredFieldAccess_8hpp_source.html#l00153">scatteredFieldAccess&lt; T, MemorySpace &gt;::getLastCopy()</a>, <a class="el" href="symArrayHD_8hpp_source.html#l00238">symArray&lt; nonLinearProperties &gt;::getN()</a>, <a class="el" href="cellMapper_8hpp_source.html#l00070">cellMapper::CellIterator::getNext()</a>, <a class="el" href="mapperNBS_8hpp_source.html#l00071">mapperNBS::CellIterator::getNext()</a>, <a class="el" href="shapeMixture_8cpp_source.html#l00074">shapeMixture::getNextShapeNameN()</a>, <a class="el" href="ViewAlgorithms_8hpp_source.html#l00270">pFlow::getNth()</a>, <a class="el" href="grainInteraction_2boundaries_2periodicBoundaryGrainInteraction_2periodicBoundarySIKernels_8hpp_source.html#l00008">pFlow::periodicBoundarySIKernels::grainGrainInteraction()</a>, <a class="el" href="IncludeMask_8hpp_source.html#l00213">IncludeMask&lt; T, Operator &gt;::isIncluded()</a>, <a class="el" href="grainInteraction_2grainInteraction_2triWall_8hpp_source.html#l00088">triWall::makeWall()</a>, <a class="el" href="collisionCheck_8cpp_source.html#l00079">collisionCheck::mapLastAddedParticle()</a>, <a class="el" href="pointRectCell_8hpp_source.html#l00096">pointRectCell::mapPOints()</a>, <a class="el" href="cellMapper_8hpp_source.html#l00075">cellMapper::CellIterator::next()</a>, <a class="el" href="mapperNBS_8hpp_source.html#l00076">mapperNBS::CellIterator::next()</a>, <a class="el" href="triangleFunctions_8hpp_source.html#l00038">pFlow::triangle::normal()</a>, <a class="el" href="ppwBndryContactSearch_8cpp_source.html#l00021">ppwBndryContactSearch::nullifyNext()</a>, <a class="el" href="symArrayHD_8hpp_source.html#l00232">symArray&lt; nonLinearProperties &gt;::numElem()</a>, <a class="el" href="grainInteractionKernels_8hpp_source.html#l00081">ppInteractionFunctor&lt; ContactForceModel, ContactListType &gt;::operator()()</a>, <a class="el" href="includeMask_8hpp_source.html#l00090">includeMask::operator()()</a>, <a class="el" href="MotionModel_8hpp_source.html#l00094">MotionModel&lt; Model, Component &gt;::ModelInterface::operator()()</a>, <a class="el" href="multiRotatingAxisMotion_8hpp_source.html#l00102">multiRotatingAxisMotion::Model::operator()()</a>, <a class="el" href="grainInteractionKernels_8hpp_source.html#l00240">pwInteractionFunctor&lt; ContactForceModel, ContactListType, TraingleAccessor, MotionModel &gt;::operator()()</a>, <a class="el" href="MotionModel_8hpp_source.html#l00088">MotionModel&lt; Model, Component &gt;::ModelInterface::pointVelocity()</a>, <a class="el" href="multiRotatingAxisMotion_8hpp_source.html#l00096">multiRotatingAxisMotion::Model::pointVelocity()</a>, <a class="el" href="positionRandom_8cpp_source.html#l00027">positionRandom::positionOnePass()</a>, <a class="el" href="positionOrdered_8cpp_source.html#l00078">positionOrdered::positionPointsOrdered()</a>, <a class="el" href="countField_8cpp_source.html#l00078">countField::process()</a>, <a class="el" href="VectorSingle_8hpp_source.html#l00328">VectorSingle&lt; uint32, HostSpace &gt;::push_back()</a>, <a class="el" href="multiRotatingAxisMotion_8cpp_source.html#l00027">multiRotatingAxisMotion::readDictionary()</a>, <a class="el" href="bTypesFunctions_8cpp_source.html#l00119">pFlow::removeDecimalZeros()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00344">VectorSingle&lt; uint32, HostSpace &gt;::resize()</a>, <a class="el" href="wordVectorHost_8hpp_source.html#l00271">VectorSingle&lt; word, HostSpace &gt;::resize()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00414">VectorDual&lt; multiRotatingAxis &gt;::resize()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00429">VectorDual&lt; multiRotatingAxis &gt;::resizeSync()</a>, <a class="el" href="rotatingAxisI_8hpp_source.html#l00107">pFlow::rotate()</a>, <a class="el" href="selectorRandomPoints_8cpp_source.html#l00027">selectorRandomPoints::selectAllPointsInRange()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00084">VectorSingle&lt; uint32, HostSpace &gt;::setSize()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00149">VectorDual&lt; multiRotatingAxis &gt;::setSize()</a>, <a class="el" href="iOstream_8cpp_source.html#l00119">iOstream::space()</a>, <a class="el" href="sphereInteraction_2boundaries_2periodicBoundarySphereInteraction_2periodicBoundarySIKernels_8hpp_source.html#l00008">pFlow::periodicBoundarySIKernels::sphereSphereInteraction()</a>, <a class="el" href="fieldOperations_8hpp_source.html#l00066">pFlow::sumMaksOp()</a>, <a class="el" href="fieldOperations_8hpp_source.html#l00034">pFlow::sumOp()</a>, <a class="el" href="MotionModel_8hpp_source.html#l00100">MotionModel&lt; Model, Component &gt;::ModelInterface::transferPoint()</a>, <a class="el" href="multiRotatingAxisMotion_8hpp_source.html#l00108">multiRotatingAxisMotion::Model::transferPoint()</a>, <a class="el" href="VectorDual_8hpp_source.html#l00211">VectorDual&lt; multiRotatingAxis &gt;::VectorDual()</a>, <a class="el" href="VectorSingle_8cpp_source.html#l00120">VectorSingle&lt; uint32, HostSpace &gt;::VectorSingle()</a>, <a class="el" href="NBSLoop_8hpp_source.html#l00026">while()</a>, and <a class="el" href="stlFile_8cpp_source.html#l00178">stlFile::writeFacet()</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_521648a0ab4242664e9ecc37593f7519.html">Interaction</a></li><li class="navelem"><a class="el" href="dir_f27c6bb1e70979f7ed7175f297e69b7e.html">contactSearch</a></li><li class="navelem"><a class="el" href="dir_e1c20bf23ef9d936d80b34376c4ac838.html">methods</a></li><li class="navelem"><a class="el" href="dir_71b688b0472b6f39e1e6e29aa55b2531.html">cellBased</a></li><li class="navelem"><a class="el" href="dir_86f5f8039e2e2132ddf3856862e431bf.html">NBS</a></li><li class="navelem"><a class="el" href="NBSLoop_8hpp.html">NBSLoop.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>