Query/docs/classes/Query.Drivers.AbstractUtil....

766 lines
44 KiB
HTML
Raw Normal View History

2017-02-28 16:37:16 -05:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>Query</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
<link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="../css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="../js/html5.js"></script>
<![endif]-->
<script src="../js/jquery-1.11.0.min.js"></script>
<script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
xhr.send(null);
});
}
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">Query</a>
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="../namespaces/Query.html">\Query</a></li>
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">31</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">0</span>
</a>
</li>
<li>
<a href="../reports/deprecated.html">
<i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1468816208"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1468816208" class="accordion-body collapse in">
<div class="accordion-inner">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-616857722"></a>
<a href="../namespaces/Query.html" style="margin-left: 30px; padding-left: 0">Query</a>
</div>
<div id="namespace-616857722" class="accordion-body collapse ">
<div class="accordion-inner">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-376664441"></a>
<a href="../namespaces/Query.Drivers.html" style="margin-left: 30px; padding-left: 0">Drivers</a>
</div>
<div id="namespace-376664441" class="accordion-body collapse ">
<div class="accordion-inner">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2103536546"></a>
<a href="../namespaces/Query.Drivers.Firebird.html" style="margin-left: 30px; padding-left: 0">Firebird</a>
</div>
<div id="namespace-2103536546" class="accordion-body collapse ">
<div class="accordion-inner">
<ul>
<li class="class"><a href="../classes/Query.Drivers.Firebird.Driver.html">Driver</a></li>
<li class="class"><a href="../classes/Query.Drivers.Firebird.Result.html">Result</a></li>
<li class="class"><a href="../classes/Query.Drivers.Firebird.SQL.html">SQL</a></li>
<li class="class"><a href="../classes/Query.Drivers.Firebird.Util.html">Util</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1798631997"></a>
<a href="../namespaces/Query.Drivers.Mysql.html" style="margin-left: 30px; padding-left: 0">Mysql</a>
</div>
<div id="namespace-1798631997" class="accordion-body collapse ">
<div class="accordion-inner">
<ul>
<li class="class"><a href="../classes/Query.Drivers.Mysql.Driver.html">Driver</a></li>
<li class="class"><a href="../classes/Query.Drivers.Mysql.SQL.html">SQL</a></li>
<li class="class"><a href="../classes/Query.Drivers.Mysql.Util.html">Util</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-144884400"></a>
<a href="../namespaces/Query.Drivers.Pgsql.html" style="margin-left: 30px; padding-left: 0">Pgsql</a>
</div>
<div id="namespace-144884400" class="accordion-body collapse ">
<div class="accordion-inner">
<ul>
<li class="class"><a href="../classes/Query.Drivers.Pgsql.Driver.html">Driver</a></li>
<li class="class"><a href="../classes/Query.Drivers.Pgsql.SQL.html">SQL</a></li>
<li class="class"><a href="../classes/Query.Drivers.Pgsql.Util.html">Util</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-487198573"></a>
<a href="../namespaces/Query.Drivers.Sqlite.html" style="margin-left: 30px; padding-left: 0">Sqlite</a>
</div>
<div id="namespace-487198573" class="accordion-body collapse ">
<div class="accordion-inner">
<ul>
<li class="class"><a href="../classes/Query.Drivers.Sqlite.Driver.html">Driver</a></li>
<li class="class"><a href="../classes/Query.Drivers.Sqlite.SQL.html">SQL</a></li>
<li class="class"><a href="../classes/Query.Drivers.Sqlite.Util.html">Util</a></li>
</ul>
</div>
</div>
</div>
</div>
<ul>
<li class="interface"><a href="../classes/Query.Drivers.DriverInterface.html">DriverInterface</a></li>
<li class="interface"><a href="../classes/Query.Drivers.PDOInterface.html">PDOInterface</a></li>
<li class="interface"><a href="../classes/Query.Drivers.PDOStatementInterface.html">PDOStatementInterface</a></li>
<li class="interface"><a href="../classes/Query.Drivers.SQLInterface.html">SQLInterface</a></li>
<li class="class"><a href="../classes/Query.Drivers.AbstractDriver.html">AbstractDriver</a></li>
<li class="class"><a href="../classes/Query.Drivers.AbstractSQL.html">AbstractSQL</a></li>
<li class="class"><a href="../classes/Query.Drivers.AbstractUtil.html">AbstractUtil</a></li>
</ul>
</div>
</div>
</div>
</div>
<ul>
<li class="interface"><a href="../classes/Query.QueryBuilderInterface.html">QueryBuilderInterface</a></li>
<li class="class"><a href="../classes/Query.AbstractQueryBuilder.html">AbstractQueryBuilder</a></li>
<li class="class"><a href="../classes/Query.BadDBDriverException.html">BadDBDriverException</a></li>
<li class="class"><a href="../classes/Query.ConnectionManager.html">ConnectionManager</a></li>
<li class="class"><a href="../classes/Query.DriverFactory.html">DriverFactory</a></li>
<li class="class"><a href="../classes/Query.QueryBuilder.html">QueryBuilder</a></li>
<li class="class"><a href="../classes/Query.QueryParser.html">QueryParser</a></li>
<li class="class"><a href="../classes/Query.State.html">State</a></li>
</ul>
</div>
</div>
</div>
</div>
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/Query.Drivers.html">\Query\Drivers</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>\Query\Drivers</small>AbstractUtil</h1>
<p><em>Abstract class defining database / table creation methods</em></p>
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Query.Drivers.AbstractUtil.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_getDriver" class="">getDriver()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_createTable" class="">createTable()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_deleteTable" class="">deleteTable()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_backupStructure" class="">backupStructure()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_backupData" class="">backupData()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_quoteIdent" class="">quoteIdent()</a><br />
<a href="../classes/Query.Drivers.AbstractUtil.html#method_quoteTable" class="">quoteTable()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<a href="../classes/Query.Drivers.AbstractUtil.html#property_conn" class="">$conn</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<span class="label label-info">abstract</span>
<dl>
<dt>File</dt>
<dd><a href="../files/Query.Drivers.AbstractUtil.html"><div class="path-wrapper">Query/Drivers/AbstractUtil.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">Default</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Query\Drivers\AbstractUtil</div>
</dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="property_conn" name="property_conn" class="anchor"></a>
<article class="property">
<h3 class="private ">$conn</h3>
<pre class="signature">$conn : \Query\Drivers\DriverInterface</pre>
<p><em>Reference to the current connection object</em></p>
<h4>Type</h4>
<a href="../classes/Query.Drivers.DriverInterface.html">\Query\Drivers\DriverInterface</a>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct(\Query\Drivers\DriverInterface <span class="argument">$conn</span>) </pre>
<p><em>Save a reference to the connection object for later use</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td><a href="../classes/Query.Drivers.DriverInterface.html">\Query\Drivers\DriverInterface</a></td>
<td>$conn </td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getDriver" name="method_getDriver" class="anchor"></a>
<article class="method">
<h3 class="public ">getDriver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getDriver() : \Query\Drivers\DriverInterface</pre>
<p><em>Get the driver object for the current connection</em></p>
<h4>Returns</h4>
<a href="../classes/Query.Drivers.DriverInterface.html">\Query\Drivers\DriverInterface</a>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_createTable" name="method_createTable" class="anchor"></a>
<article class="method">
<h3 class="public ">createTable()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">createTable(string <span class="argument">$name</span>, array <span class="argument">$fields</span>, array <span class="argument">$constraints = array()</span>, boolean <span class="argument">$ifNotExists = TRUE</span>) : string</pre>
<p><em>Convenience public function to generate sql for creating a db table</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$name </td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$fields </td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$constraints </td>
<td></td>
</tr>
<tr>
<td>boolean</td>
<td>$ifNotExists </td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_deleteTable" name="method_deleteTable" class="anchor"></a>
<article class="method">
<h3 class="public ">deleteTable()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">deleteTable(string <span class="argument">$name</span>) : string</pre>
<p><em>Drop the selected table</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$name </td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_backupStructure" name="method_backupStructure" class="anchor"></a>
<article class="method">
<h3 class="public ">backupStructure()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">backupStructure() : string</pre>
<p><em>Return an SQL file with the database table structure</em></p>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">abstract</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_backupData" name="method_backupData" class="anchor"></a>
<article class="method">
<h3 class="public ">backupData()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">backupData() : string</pre>
<p><em>Return an SQL file with the database data as insert statements</em></p>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">abstract</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_quoteIdent" name="method_quoteIdent" class="anchor"></a>
<article class="method">
<h3 class="public ">quoteIdent()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">quoteIdent(string <span class="argument">$sql</span>) : string</pre>
<p><em></em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$sql </td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_quoteTable" name="method_quoteTable" class="anchor"></a>
<article class="method">
<h3 class="public ">quoteTable()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">quoteTable(string <span class="argument">$sql</span>) : string</pre>
<p><em></em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$sql </td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
</div>
</section>
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">AbstractUtil.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Query/Drivers/AbstractUtil.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
<li><a href="../namespaces/Query.html">\Query</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on February 28th, 2017 at 21:36.
</section>
</section>
</section>
</footer>
</div>
</body>
</html>