1
0

It's the last time I do such commit, I promise

This commit is contained in:
Michael Gordeev
2019-11-08 13:05:43 +03:00
parent 800c0394f9
commit bbcb6b179e
67 changed files with 14344 additions and 48 deletions
@@ -1,6 +1,5 @@
@using Newtonsoft.Json @using Newtonsoft.Json
@using System.Net @using System.Net
@using System.Web
@{ @{
Dictionary<string, Link> links = JsonConvert.DeserializeObject<Dictionary<string, Link>>(new WebClient().DownloadString($"{Context.Request.Scheme}://{Context.Request.Host}/Links.json")); Dictionary<string, Link> links = JsonConvert.DeserializeObject<Dictionary<string, Link>>(new WebClient().DownloadString($"{Context.Request.Scheme}://{Context.Request.Host}/Links.json"));
} }

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

Before

Width:  |  Height:  |  Size: 193 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 205 KiB

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Before

Width:  |  Height:  |  Size: 560 KiB

After

Width:  |  Height:  |  Size: 560 KiB

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 286 KiB

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 905 KiB

After

Width:  |  Height:  |  Size: 905 KiB

+54
View File
@@ -0,0 +1,54 @@
body {
margin: 0px;
}
.navbar {
background-color: rgb(34, 34, 33);
padding: 10px;
font-family: 'Courier New', Courier, monospace;
position: fixed;
right: 0%;
left: 0%;
}
.navbar a {
color: white;
font-size: 26px;
text-decoration: none;
}
.navbar a:hover {
color: gray;
}
.navbar ul {
display: inline;
list-style: none;
}
.navbar li {
display: inline;
margin-right: 20px;
}
.navbar li a {
font-size: 20px !important;
}
.content {
padding-top: 50px;
}
.gallery {
margin: 10px 50px;
font-family: 'Courier New', Courier, monospace;
}
.gallery img {
transition: .25s;
object-fit: cover;
max-width: 300px;
height: 200px;
margin: 2px;
}
.gallery img:hover {
filter: brightness(125%);
transform: scale(1.25);
}
.header {
color: black;
font-size: 36px;
font-weight: bold;
}
+60
View File
@@ -0,0 +1,60 @@
Michael (Mikhail) A. Gordeev
Saint Petersburg,
Russia
Phone No (Russia): +7 (996) 929-19-69
Email: michael.xfox@outlook.com
Overall Summary:
Self- directed, detail-oriented, and professional C# programmer with more than 5 years of experience in designing, developing, analyzing, and implementing client-server, web and desktop-based applications using C# language. Expertise in system designing as well as in testing, debugging and modifying related application code. Capable of learning new programming languages and technologies and complete projects within specified deadlines. Possess excellent communication, problem-solving, documentation, analytical, and decision solving skills.
Summary of Skills:
Thorough knowledge of C# programming concepts, SDLC, testing and debugging methods, system design, and implementation, database system, including DB2 and relational databases, program documentation, web and desktop application development
Proficient in Object oriented programming such as C, C++, C# as well as experience with MS SQL Server, ASP. NET, MVC, and ORM frameworks
Strong understanding of HTML, CSS, JavaScript, web services, Visual Studio, design and architectural patterns, and window services
Ability to analyze and understand complex problems, and generate appropriate technical solutions independently
Effective communication and interpersonal skills with the ability to maintain good relations and share technical ideas with users or clients, technical and management staff
Excellent leadership and mentoring skills as well as the ability to work independently and within teams
Strong organizational skills along with the ability to accomplish multiple tasks under extreme pressure, and meet specific deadlines
Ability to grasp and apply new concepts quickly and stay updated with latest trends and technical advancements
TECHNICAL SKILLS:
OS: Windows and DOS
Languages: C, C++, C#, Visual Basic 6, Visual Basic, .NET, SOAP, HTML, DHTML, XML
Software: Visual Studio, .NET 2005, Dreamweaver
Database: MySQL 4.0/5, MS SQL 2000/2005, MS Access
Networking: TCP/IP, LAN, FTP, DNS, DHCP, IIS, Active Directory
Very energetic and ready to take new challenges
Excellent communication and presentation skills
In-depth knowledge of web technologies, customer services and sales management
Work Experience:
C# Programmer
Broad-ridge Technologies, Louisville, KY
October 2017 Present
Providing support to IT personnel in designing, developing, analyzing, testing, debugging, and executing C# programs for windows desktop and web-based applications
Assisting project manager in defining detailed specifications for specific functionality requirements as well as analyzing, designing, and encoding new systems using C# language
Preparing accurate reports to document design flaws and bugs as well as modifying existing software or system to correct errors and improve performance
Collaborating with other programmers and developers in the whole development process, and using structured analysis and design to determine steps to develop programs
Determining user requirements, including project budgets and timelines as well as providing consultative services to clients and project team members on technical issues
Mentoring and assisting with training of new and junior programmers as well as doing code reviews for other team members to ensure highest possible quality in software products
Researching and evaluating new development tools and software products to increase programming capabilities as well as creating written developers guides, and training users in system operations
C# Programmer
Sunlight Solutions, Louisville, KY
March 2015 - October 2017
Developed software code using C# programming language to meet design specifications, and user requirements as well as delivered high-quality applications within specified deadlines
Contributed to overall project plans in compliance with established procedures and standards as well as provided support and error resolution for developed desktop and web applications
Wrote and provided appropriate application user guides for end-users and system admin as well as developed and maintained all documentation that pertained to programming projects
Evaluated impact of a programming change or modification on whole system as well as communicated status of all projects to team leaders or development lead to ensure projects were implemented properly
Trained programmers in new techniques as well as assisted in reviewing codes
Junior C# Programmer
Edwards Tech Group, Louisville, KY
December 2013 - February 2015
Independently analyzed and validated program specifications as well as designed and created reliable and reusable C# code that conformed to department standards and procedures
Assisted in interpreting design specifications, clients' requirements and use cases into functional applications as well as in ensuring their best possible performance, quality, and responsiveness
Assisted Senior Programmer in researching user questions on program processing logics, and calculations as well as performing thorough program and application testing as required
Assisted in designing and developing new features and functionality for software applications as per requirements as well as in identifying and debugging defects in application code
Worked with other junior programmers in developing ERP software for systems and windows service for data files as well as assisted in designing and creating web-pages and new database
Education:
Bachelor's Degree in Information Technology
Bellarmine University, Louisville, KY
2013
Reference:
On request.
+8
View File
@@ -0,0 +1,8 @@
[
{
"FileName": "VectorAvatar.svg",
"Title": "First avatar I made in vector",
"CreationDate": "2019-08-15T00:00:00",
"Description": ""
}
]
+65
View File
@@ -0,0 +1,65 @@
{
"email": {
"Title": "Email",
"Socicon": "outlook",
"Username": "michael.xfox@outlook.com",
"Url": "mailto:michael.xfox@outlook.com",
"CanContactMe": "true"
},
"linkedin": {
"Title": "LinkedIn",
"Socicon": "linkedin",
"Username": "@xfox",
"Url": "//linkedin.com/in/xfox",
"CanContactMe": "true"
},
"vk": {
"Title": "Vkontakte",
"Socicon": "vkontakte",
"Username": "@xfox.mike",
"Url": "//vk.com/xfox.mike",
"CanContactMe": "true"
},
"telegram": {
"Title": "Telegram",
"Socicon": "telegram",
"Username": "@xfox111",
"Url": "//t.me/xfox111",
"CanContactMe": "true"
},
"skype": {
"Title": "Skype",
"Socicon": "skype",
"Username": "@mag48gordeev",
"Url": "//join.skype.com/invite/eVp6BISfcmNz",
"CanContactMe": "true"
},
"twitter": {
"Title": "Twitter",
"Socicon": "twitter",
"Username": "@xfox111",
"Url": "//twitter.com/xfox111",
"CanContactMe": "false"
},
"twitch": {
"Title": "Twitch",
"Socicon": "twitch",
"Username": "@xfox111",
"Url": "//twitch.com/xfox111",
"CanContactMe": "false"
},
"youtube": {
"Title": "YouTube",
"Socicon": "youtube",
"Username": "@UC3H2q5Ss_CR3wP_S1zV8joA",
"Url": "//www.youtube.com/channel/UC3H2q5Ss_CR3wP_S1zV8joA",
"CanContactMe": "false"
},
"github": {
"Title": "GitHub",
"Socicon": "github",
"Username": "@xfox111",
"Url": "//github.com/xfox111",
"CanContactMe": "false"
}
}
+76
View File
@@ -0,0 +1,76 @@
[
{
"Title": "FoxTube",
"Description": "This is my first big project. And the first one published in Microsoft Store.<br />This is a Windows client application for YouTube",
"ImageName": "FoxTube.png",
"Link": "//foxtube.xfox111.net",
"LinkCaption": "Learn more...",
"Badges": [
"csharp", "dotnet", "uwp"
]
},
{
"Title": "My Bonch",
"Description": "",
"ImageName": "",
"Link": "",
"LinkCaption": "Availavle soon...",
"Badges": [
"csharp", "xamarin", "uwp", "android"/*, "ios"*/
]
},
{
"Title": "MotionDecoder",
"Description": "This project is used to analyze videos from security cameras and shows short clips which contain detected motions.<br />I made this projects during scientific projects competition in big data division.",
"ImageName": "MotionDecoder.png",
"Link": "//github.com/XFox111/motiondecoder",
"LinkCaption": "View on GitHub",
"Badges": [
"csharp",
"dotnet",
"win32"
]
},
{
"Title": "2048",
"Description": "Simple classic game. I made it in Unity just for fun",
"ImageName": "2048.png",
"Link": "",
"LinkCaption": "",
"Badges": [
"csharp", "unity", "windows", "android"
]
},
{
"Title": "MiSmartAlarm",
"Description": "Smart alarm app for Xiaomi MiBand",
"ImageName": "MiSmartAlarm.png",
"Link": "https://github.com/XFox111/mismartalarm",
"LinkCaption": "View on GitHub",
"Badges": [
"csharp", "xamarin", "uwp", "android"
]
},
{
"Title": "YouTubeScrapper",
"Description": "A C# library which is used to extend the abilities of YouTube API v3",
"ImageName": "",
"Link": "https://github.com/XFox111/youtubescraper",
"LinkCaption": "View on GitHub",
"Badges": [
"csharp", "dotnet", "uwp"
]
},
{
"Title": "GZipCompression",
"Description": "Console program which splits files on 1MB blocks and compresses them in multi-thread.<br />I made this program as intro challange in Veeam Software",
"ImageName": "",
"Link": "https://github.com/XFox111/gzipcompression",
"LinkCaption": "View on GitHub",
"Badges": [
"csharp",
"dotnet",
"windows"
]
}
]
+37
View File
@@ -0,0 +1,37 @@
article {
margin: 0px;
}
.block {
position: relative;
margin-bottom: -10px;
z-index: -1;
}
.block .content {
position: absolute;
}
.block .background {
width: 100%;
}
.intro {
color: white;
background-color: #00a7dc;
font-size: 36px;
text-shadow: 2px 2px 1px black;
}
.intro .content {
bottom: 50px;
left: 50px;
max-width: 65%;
}
.sut {
color: white;
background-color: #ff8000;
font-size: 24px;
text-shadow: 2px 2px 1px black;
}
.sut .content {
margin: 50px 50px;
}
+37
View File
@@ -0,0 +1,37 @@
footer {
display: none;
}
.contact-me {
padding: 30px 50px;
background-color: #1e1e1e;
color: white;
}
code {
font: inherit;
}
var {
color: #569cd6;
font: inherit;
}
.class {
color: #4ec9b0;
}
.string, .string:visited {
color: #d69d85;
text-decoration: none;
}
.string:link:hover {
text-decoration: underline;
}
.method {
color: #dcdcaa;
}
.t1 { margin-right: 25px; }
.t2 { margin-right: 50px; }
+23
View File
@@ -0,0 +1,23 @@
.gallery img {
object-fit: cover;
max-height: 200px;
max-width: 100%;
margin: 2px;
transition: .25s;
}
.gallery img:hover {
filter: brightness(125%);
transform: scale(1.25);
}
.image-overview-block img {
max-height: 50vh;
max-width: 100%;
float: left;
}
.image-overview-block div {
display: inline-block;
}
.image-overview-block h1 {
margin-bottom: 0px;
}
+50
View File
@@ -0,0 +1,50 @@
header {
display: grid;
grid-template-columns: 1fr auto;
grid-template-rows: auto auto;
grid-column-gap: 20px;
margin-bottom: 20px;
}
article {
margin: 0px 10px;
}
.github-stats {
margin-top: 20px;
width: 200px;
height: 110px;
}
.project-item {
display: grid;
padding: 20px;
padding-top: 0px;
grid-template-rows: auto auto;
grid-row-gap: 20px;
background-color: whitesmoke;
margin-bottom: 10px;
}
.badge {
height: 25px;
width: 25px;
margin-right: 10px;
display: inline-block;
background-size: contain;
}
.csharp { background-image: url(../images/Badges/csharp.png); }
.dotnet { background-image: url("../images/Badges/dotnet.png"); }
.xamarin { background-image: url("../images/Badges/xamarin.png"); }
.unity { background-image: url("../images/Badges/unity.png"); }
.android { background-image: url("../images/Badges/android.png"); }
.uwp { background-image: url("../images/Badges/windows.png"); }
.win32 { background-image: url("../images/Badges/windows.png"); }
.windows { background-image: url("../images/Badges/windows.png"); }
@media only screen and (max-width: 600px) {
.github-stats {
grid-row: 2;
}
}
+97 -37
View File
@@ -1,54 +1,114 @@
body { @font-face {
margin: 0px; font-family: 'Consolas';
src: url("/fonts/consolas.eot");
src: url("/fonts/consolas.eot?#iefix") format("embedded-opentype"), url("/fonts/consolas.otf") format("opentype"), url("/fonts/consolas.svg") format("svg"), url("/fonts/consolas.ttf") format("truetype"), url("/fonts/consolas.woff") format("woff"), url("/fonts/consolas.woff2") format("woff2");
} }
@font-face {
font-family: 'Segoe MDL2 Assets';
src: url("/fonts/segoeMLD2assets.eot");
src: url("/fonts/segoeMLD2assets.eot?#iefix") format("embedded-opentype"), url("/fonts/segoeMLD2assets.otf") format("opentype"), url("/fonts/segoeMLD2assets.svg") format("svg"), url("/fonts/segoeMLD2assets.ttf") format("truetype"), url("/fonts/segoeMLD2assets.woff") format("woff"), url("/fonts/segoeMLD2assets.woff2") format("woff2");
}
/*Header styles*/
.navbar { .navbar {
background-color: rgb(34, 34, 33); display: grid;
grid-template-columns: auto 1fr auto auto;
grid-column-gap: 10px;
grid-template-rows: auto auto;
background-color: #343434;
position: sticky;
z-index: 10;
padding: 10px; padding: 10px;
font-family: 'Courier New', Courier, monospace;
position: fixed;
right: 0%;
left: 0%;
}
.navbar a {
color: white;
font-size: 26px; font-size: 26px;
}
.navbar a {
text-decoration: none; text-decoration: none;
color: white;
} }
.navbar a:hover { .navbar a:hover {
color: gray; color: gray;
} }
.navbar ul {
display: inline; .main-menu { margin: 0px; }
list-style: none; .main-menu li {
} display: inline-block;
.navbar li { font-size: 20px;
display: inline;
margin-right: 20px; margin-right: 20px;
} }
.navbar li a {
font-size: 20px !important; .language-switch {
grid-column: 3;
display: none;
user-select: none
} }
.content { .menu-toggle {
padding-top: 50px; grid-column: 4;
display: none;
cursor: pointer;
user-select: none;
}
#compact-menu {
grid-row: 2;
list-style: none;
}
#compact-menu li {
font-size: 20px;
margin-top: 10px;
} }
.gallery { /*Footer styles*/
margin: 10px 50px; footer {
font-family: 'Courier New', Courier, monospace; padding: 10px;
display: grid;
align-items: center;
grid-template-columns: 1fr auto auto auto;
grid-column-gap: 10px;
} }
.gallery img { footer a {
transition: .25s; text-decoration: none;
object-fit: cover;
max-width: 300px;
height: 200px;
margin: 2px;
}
.gallery img:hover {
filter: brightness(125%);
transform: scale(1.25);
}
.header {
color: black; color: black;
font-size: 36px; }
font-weight: bold; footer a:hover {
color: orangered;
}
/*Body styles*/
body {
margin: 0px;
font-family: Consolas, 'Segoe MDL2 Assets';
}
main {
min-height: calc(100vh - 115px); /*Page height minus footer requred space*/
}
header a {
text-decoration: none;
color: black;
}
header a:hover {
text-decoration: underline;
}
article, header {
margin: 0px 50px;
}
article a:visited, article a:link {
color: blue;
}
.comment, .comment:visited {
color: #57a64a;
}
/*Adaptive code*/
@media only screen and (max-width: 1000px) {
.main-menu {
display: none;
}
.menu-toggle {
display: initial;
}
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1021 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 783 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

+80
View File
@@ -0,0 +1,80 @@
function ToggleMenu()
{
var menu = document.getElementById("compact-menu");
if (menu.style.display == "none")
menu.style.display = "initial";
else
menu.style.display = "none";
}
var links = JSON.parse("~/Links.json");
var projects = JSON.parse("~/Projects.json");
var gallery = JSON.parse("~/Gallery.json");
function Init()
{
}
function ToggleImageSize()
{
var image = document.getElementById("image");
if (image.style.maxHeight == "none")
{
image.style.maxHeight = "50vh";
image.style.maxWidth = "100%";
}
else
{
image.style.maxHeight = "none";
image.style.maxWidth = "none";
}
}
function UpdateProjects()
{
// Settings badges tooltips
var badges = document.getElementsByClassName("badge");
for (var i = 0; i < badges.length; i++)
{
switch (badges[i].classList[1])
{
case "csharp":
badges[i].setAttribute("title", "C# Programming language");
break;
case "dotnet":
badges[i].setAttribute("title", ".NET Framework");
break;
case "xamarin":
badges[i].setAttribute("title", "Xamarin Framework");
break;
case "unity":
badges[i].setAttribute("title", "Unity Engine");
break;
case "uwp":
badges[i].setAttribute("title", "Universal Windows Platform");
break;
case "windows":
badges[i].setAttribute("title", "Windows Platform");
break;
case "win32":
badges[i].setAttribute("title", "Windows Platform (Win32)");
break;
case "android":
badges[i].setAttribute("title", "Android Platform");
break;
}
}
// Making projects descriptions multiline
var descriptions = document.getElementsByClassName("description");
for (var i = 0; i < descriptions.length; i++)
{
var desc = descriptions[i];
var text = desc.innerText;
desc.innerText = "";
desc.innerHTML = text;
}
}
View File
View File
+63
View File
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello, World! - XFox111.NET</title>
<link rel="shortcut icon" href="/images/favicon.png" type="image/png" />
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<link rel="stylesheet" href="//d1azc1qln24ryf.cloudfront.net/114779/Socicon/style-cf.css?9ukd8d">
<script src="/js/site.js" type="text/javascript"></script>
<meta name="author" content="Michael 'XFox' Gordeev" />
<meta name="description" content="Hi, my name is Michael. I'm C# Developer and this is my personal website. Here you can find info about me, my projects and more. Check it out!" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="XFox111.NET" />
<meta property="og:url" content="//XFox111.NET/" />
<meta property="og:locale" content="en_US" />
<meta property="og:image" content="/images/me.png" />
<meta property="og:description" content="Hi, my name is Michael. I'm C# Developer and this is my personal website. Here you can find info about me, my projects and more. Check it out!" />
<meta property="og:title" content="Michael 'XFox' Gordeev - Personal website" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body onload="Init()">
<nav class="navbar">
<a href="/">XFox111.NET</a>
<menu type="toolbar" class="main-menu">
<li><a href="/about">AboutMe();</a></li>
<li><a href="/cv">CV();</a></li>
<li><a href="/projects">Projects();</a></li>
<li><a href="/arts">Arts();</a></li>
<li><a href="/contacts">Contacts();</a></li>
</menu>
<a class="language-switch" href="//ru.xfox111.net/" lang="ru">РУС &#xE12B;</a>
<a class="menu-toggle" onclick="ToggleMenu();">&#xE700;</a>
<menu type="toolbar" id="compact-menu" style="display:none">
<li><a href="/about">AboutMe();</a></li>
<li><a href="/cv">CV();</a></li>
<li><a href="/projects">Projects();</a></li>
<li><a href="/arts">Arts();</a></li>
<li><a href="/contacts">Contacts();</a></li>
</menu>
</nav>
<main id="renderBody"></main>
<footer class="footer">
<span class="comment">// Copyright &copy;2019 <b>Michael "XFox" Gordeev</b></span>
<!--@{
foreach (Link link in new List<Link> { links["email"], links["linkedin"], links["github"] })
{
<a class="socicon-@(link.Socicon)" href="@(link.Url)" target="_blank" title="@(link.Title)"></a>
}
}-->
</footer>
</body>
</html>