OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
3-31-025chanakya
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2025 11:18:49 AM
rwxr-xr-x
📄
.htaccess
860 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
.vscode
-
03/26/2025 03:47:57 AM
rwxr-xr-x
📁
CreateLeadPage
-
03/26/2025 04:16:47 AM
rwxr-xr-x
📄
ImageMagick-7.1.1-45-Q16-HDRI-x64-dll.exe
22.2 MB
03/26/2025 03:47:54 AM
rw-r--r--
📁
Xpress
-
03/26/2025 04:21:24 AM
rwxr-xr-x
📄
XpressPage.php
47.13 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
about.html
3.26 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
account.php
47.77 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
activate.php
2.19 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
add_channel.php
9.7 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
add_to_channel.php
980 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
admin
-
03/26/2025 04:16:40 AM
rwxr-xr-x
📄
analytics.php
37.71 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
assets
-
03/26/2025 04:16:41 AM
rwxr-xr-x
📁
audio
-
03/26/2025 03:48:03 AM
rwxr-xr-x
📄
businessLp.php
46.33 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
bussLp.php
57.87 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
card-news.php
6.2 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
channel.php
36.21 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
chattest.php
8.66 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
clients
-
03/26/2025 03:48:03 AM
rwxr-xr-x
📄
collections.php
94.62 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
comments.php
1.67 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
composer.json
65 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📄
composer.lock
4.03 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
contact.html
3.01 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
cookie.php
750 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📄
copytest.html
4.04 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
creamAdmin
-
03/26/2025 04:07:42 AM
rwxr-xr-x
📄
cream_dashboard.php
25.87 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
creamapi
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
create.php
42.93 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
created_magazine.html
11.96 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
dashboard.php
55.52 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
data
-
03/26/2025 04:16:48 AM
rwxr-xr-x
📄
down.html
829 bytes
03/26/2025 03:47:46 AM
rw-r--r--
📁
education-podcasts
-
03/31/2025 06:36:42 AM
rwxr-xr-x
📁
featured_channels
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
featured_channels.php
32.48 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
featured_topics.php
26.59 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
fetch_articles.php
1.83 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
fetch_liked_users.php
1.55 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
filter.php
4.91 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
follow_action.php
1.75 KB
03/26/2025 03:47:46 AM
rw-r--r--
📄
follow_dash.php
33.76 KB
03/26/2025 03:47:46 AM
rw-r--r--
📁
form-builder
-
03/26/2025 03:48:04 AM
rwxr-xr-x
📄
function.php
20.61 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
genai
-
03/26/2025 04:20:06 AM
rwxr-xr-x
📄
generated_article.php
11.86 KB
03/26/2025 03:47:47 AM
rw-r--r--
📄
get_recent_items.php
1.37 KB
03/26/2025 03:47:47 AM
rw-r--r--
📄
handle_channel.php
856 bytes
03/26/2025 03:47:47 AM
rw-r--r--
📁
hindiConverter
-
03/26/2025 04:15:50 AM
rwxr-xr-x
📄
homePin.php
68.38 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
hps
-
03/26/2025 03:48:05 AM
rwxr-xr-x
📄
impmy_collection.php
124.17 KB
03/26/2025 03:47:47 AM
rw-r--r--
📁
inc
-
03/26/2025 04:15:50 AM
rwxr-xr-x
📄
index.php
30.55 KB
03/26/2025 03:47:48 AM
rw-r--r--
📄
index1.php
61.34 KB
03/26/2025 03:47:50 AM
rw-r--r--
📄
influencer.php
11.72 KB
03/26/2025 03:47:54 AM
rw-r--r--
📁
interface
-
03/26/2025 03:48:05 AM
rwxr-xr-x
📁
kannada
-
03/26/2025 04:20:06 AM
rwxr-xr-x
📄
knobly_logo.png
9.45 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
landing_page.php
17.27 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
landing_signin.php
5.11 KB
03/26/2025 03:47:54 AM
rw-r--r--
📁
leadpage
-
03/26/2025 04:15:53 AM
rwxr-xr-x
📄
link.php
5.63 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
logInCheck.php
4.41 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
loggedInCheck.php
1.15 KB
03/26/2025 03:47:54 AM
rw-r--r--
📄
logo (1).svg
814 bytes
03/26/2025 03:47:55 AM
rw-r--r--
📄
logout.php
503 bytes
03/26/2025 03:47:55 AM
rw-r--r--
📄
magazine.html
4.46 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
magazine.php
23.57 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
more.php
9.21 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
my_collection.php
153.03 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
my_settings.php
17.44 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
navbar.php
3.36 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
new-page.php
10.46 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
newEditor.php
17.04 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
newsletter.php
24.31 KB
03/26/2025 03:47:55 AM
rw-r--r--
📁
pageLanding
-
03/26/2025 04:20:07 AM
rwxr-xr-x
📁
pages
-
03/26/2025 04:15:53 AM
rwxr-xr-x
📄
payment.php
29.86 KB
03/26/2025 03:47:55 AM
rw-r--r--
📁
pdf
-
03/26/2025 03:48:06 AM
rwxr-xr-x
📄
pdftk_server-2.02-win-setup.exe
2.91 MB
03/26/2025 03:47:56 AM
rw-r--r--
📄
post-details.php
37.75 KB
03/26/2025 03:47:55 AM
rw-r--r--
📄
premium.php
21.79 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
privacy.html
12.1 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
process
-
03/26/2025 03:48:11 AM
rwxr-xr-x
📄
process-plan.php
1.44 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
process.php
1.52 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
process_data.php
5.02 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile.php
37.8 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile_pic_upload.php
4.83 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
profile_test.php
19.78 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
reels
-
03/26/2025 04:20:08 AM
rwxr-xr-x
📄
refund.html
9.04 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
replyPost.php
3.93 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
report
-
03/26/2025 03:48:11 AM
rwxr-xr-x
📄
request_article.php
22.76 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
reset.html
4.7 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
save_profile.php
2.78 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
saved.php
34.28 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
saved_posts.php
49.25 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
search_bar.php
16.95 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
sendy
-
03/26/2025 04:21:20 AM
rwxr-xr-x
📄
settings.php
81.93 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
sharemarket.php
3.88 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
showcase.php
10.34 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
signInProcess.php
13.83 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
signInProcess_backup.php
11.18 KB
03/26/2025 03:47:56 AM
rw-r--r--
📁
social_media
-
03/26/2025 04:16:12 AM
rwxr-xr-x
📄
start.html
3.99 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
store_articles.php
1.04 KB
03/26/2025 03:47:56 AM
rw-r--r--
📄
stream.php
62.31 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streamPush.php
29.82 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streamb.php
40.75 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
streambb.php
47.34 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
texttovoice
-
03/26/2025 03:48:13 AM
rwxr-xr-x
📁
thumbsUp
-
03/26/2025 03:48:13 AM
rwxr-xr-x
📄
toggle_channel.php
2.28 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
udupi_sign_up.php
34.5 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
uploads
-
03/26/2025 04:06:46 AM
rwxr-xr-x
📄
usage.html
37.76 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
userActivity.php
9.79 KB
03/26/2025 03:47:57 AM
rw-r--r--
📁
vendor
-
03/26/2025 04:20:23 AM
rwxr-xr-x
📄
verify.php
744 bytes
03/26/2025 03:47:57 AM
rw-r--r--
📄
view.php
13.36 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
view_newsletter.php
1.58 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
xpress_landing_page.php
78.63 KB
03/26/2025 03:47:57 AM
rw-r--r--
📄
xpress_landingpage.html
11.15 KB
03/26/2025 03:47:57 AM
rw-r--r--
Editing: search_bar.php
Close
<?php // Include necessary files include 'assets/php/db_config.php'; include 'assets/php/validate.logged.php'; include 'assets/php/function.php'; // Get the search query from the request (if it's an AJAX request) $searchQuery = isset($_GET['query']) ? $_GET['query'] : ''; $userResults = []; $postResults = []; $channelResults = []; if (!empty($searchQuery)) { // SEARCH USERS $sqlUser = "SELECT id, full_name, profile_pic FROM user WHERE full_name LIKE ? OR email LIKE ? LIMIT 10"; $stmtUser = $creamdb->prepare($sqlUser); $searchQueryLike = $searchQuery . '%'; $stmtUser->bind_param('ss', $searchQueryLike, $searchQueryLike); $stmtUser->execute(); $resultUser = $stmtUser->get_result(); while ($row = $resultUser->fetch_assoc()) { $profileUrl = isset($row['profile_pic']) ? "https://knoblycream.com/data/profilePic/" . $row['profile_pic'] : "https://knoblycream.com/data/profilePic/default.png"; $userResults[] = [ 'type' => 'user', 'full_name' => $row['full_name'], 'img' => $profileUrl, 'user_id' => $row['id'], 'url' => "/profile.php?userId=" . $row['id'] ]; } // SEARCH POSTS $sqlPost = "SELECT id, chat, userId FROM reader_stream WHERE chat LIKE ? LIMIT 10"; $stmtPost = $readerdb->prepare($sqlPost); $searchQueryPost = '%' . $searchQuery . '%'; $stmtPost->bind_param('s', $searchQueryPost); $stmtPost->execute(); $resultPost = $stmtPost->get_result(); while ($row = $resultPost->fetch_assoc()) { $postResults[] = [ 'type' => 'post', 'title' => $row['chat'], 'user_id' => $row['userId'], 'url' => "/post-details.php?id=" . $row['id'] ]; } // SEARCH CHANNELS $sqlChannel = "SELECT id, name, created_by, profilePic FROM channels WHERE name LIKE ? LIMIT 10"; $stmtChannel = $readerdb->prepare($sqlChannel); $stmtChannel->bind_param('s', $searchQueryLike); $stmtChannel->execute(); $resultChannel = $stmtChannel->get_result(); while ($row = $resultChannel->fetch_assoc()) { $profileUrl = isset($row['profilePic']) ? "https://knoblycream.com/data/channelPic/" . $row['profilePic'] : "https://knoblycream.com/data/profilePic/default.png"; $channelResults[] = [ 'type' => 'channel', 'img' => $profileUrl, 'channel_name' => $row['name'], 'user_id' => $row['created_by'], 'url' => "/channel.php?channelId=" . $row['id'] . "&channelName=" . $row['name'] ]; } } // Combine all results $response = [ 'users' => $userResults, 'posts' => $postResults, 'channels' => $channelResults ]; // Return JSON response for AJAX requests if (isset($_GET['query'])) { header('Content-Type: application/json'); echo json_encode($response); exit; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Search Page</title> <script src="assets/js/jquery-3.6.0.min.js"></script> <link rel="stylesheet" href="assets/css/styles.css"> <link rel="stylesheet" href="assets/css/stream.css"> <!-- jQuery --> <script src="assets/js/jquery-3.6.0.min.js"></script> <!-- Magnific Popup --> <script src="assets/js/jquery.magnific-popup.min.js"></script> <!-- Bootstrap, Font Awesome, etc. --> <link rel="stylesheet" href="assets/css/all.min.6.6.css"> <link rel="stylesheet" href="assets/css/all.min.5.15.css"> <link rel="stylesheet" href="assets/css/bootstrap.min.4.5.0.css" > <!-- Custom CSS --> <link rel="stylesheet" href="assets/css/styles.css" /> <link rel="stylesheet" href="assets/old/genai_style.css" /> <!-- Scripts --> <script src="assets/js/bootstrap.min.4.5.js" ></script> <script src="assets/js/Chart.min.2.8.js" crossorigin="anonymous"></script> <!-- <script src="https://cdn.tiny.cloud/1/kz1jcdrlicpzilnm0x80vemrxz252921vwmb10kytce5n9ez/tinymce/7/tinymce.min.js" referrerpolicy="origin"></script> --> <script src="assets/tinymce/js/tinymce/tinymce.min.js"></script> <script src="assets/js/common.js"></script> <script src="assets/js/genai_func.js"></script> </head> <style> /* General Styles */ .search-container { display: flex; justify-content: center; align-items: center; padding: 20px; position: sticky; top: 0; z-index: 10; } .search-bar { width: 100%; max-width: 600px; display: flex; justify-content: space-between; background-color: #f0f0f0; border-radius: 5px; padding: 1px 3px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); } .search-bar input { border: none; background: transparent; outline: none; width: 85%; font-size: 16px; padding: 8px; border-radius: 20px; } .search-bar button { border: none; border-color: none; outline: none; color: #444; font-size: 16px; border-radius: 50%; cursor: pointer; display: flex; justify-content: center; align-items: center; } .search-bar button:hover { background-color: #007acb; } #suggestionsList { left: 30%; display: none; width: 100%; max-width: 600px; /* margin-top: 130px; */ background-color: white; color: #444; /* box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); */ /* border-radius: 5px; */ padding: 10px; position: absolute; z-index: 10; } #searchButton { border: none; outline: none; } .suggestion-item { overflow: hidden; display: flex; align-items: center; justify-content: left; padding: 10px; border-bottom: 0.5px solid #ddd; } .suggestion-item a { display: flex; align-items: center; gap: 10px; color: black; } .suggestion-item img { width: 24px; height: 24px; border-radius: 50%; margin-right: 10px; } .suggestion-item .user-info { display: flex; flex-direction: column; } .suggestion-item .full_name { font-weight: medium; } /* Results Section */ .results { display: flex; flex-direction: column; align-items: center; /* width: 100%; */ padding: 20px; margin-top: 20px; } .result-item { display: flex; align-items: center; width: 80%; padding: 10px; margin: 10px 0; background-color: white; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); border-radius: 8px; } .result-item img { width: 50px; height: 50px; border-radius: 50%; margin-right: 15px; } .result-item .user-info { display: flex; flex-direction: column; } .result-item .full_name { font-weight: 600; font-size: 16px; color: #333; } .result-item .name { font-size: 14px; color: #555; } /* Loading Placeholder */ #loadingText { margin-top: 50px; font-size: 18px; color: #999; } @media screen and (max-width:768px) { #suggestionsList { left: 0%; display: none; width: 100%; max-width: 600px; /* margin-top: 130px; */ background-color: white; /* box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); */ /* border-radius: 5px; */ padding: 10px; position: absolute; z-index: 10; } .sidebar .sidebar-content { background-color: white; display: flex; flex-direction: column; gap: 20px; padding: 20px; color: black !important; } } .bottom-navbar a { background-color: white !important; color: #333 !important; } </style> <style> .sideWithMainContainer { display: flex; flex-direction: row; gap: 10px; overflow-x: hidden; } .sideMaincontent { height: 85vh; overflow-y: scroll; padding: 0px 0; } .first_left_container { height: 82vh !important; } @media (min-width: 768px) { .col-md-2 { padding: 0px !important; } } @media (max-width: 768px) { .col-md-2 { display: none !important; } } footer { z-index: 1000; } </style> <body> <?php include 'assets/php/social_navbar.php'; ?> <div class="sideWithMainContainer"> <div class="col-md-2"> <? include 'assets/php/sidebar.php' ?> </div> <div class="search_bar_system col-sm-12 col-md-10 sideMaincontent"> <div class="search-container"> <div class="search-bar"> <input type="text" placeholder="Search..." id="searchInput"> <button id="searchButton"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path fill="currentColor" d="M10 4a6 6 0 1 0 0 12a6 6 0 0 0 0-12m-8 6a8 8 0 1 1 14.32 4.906l5.387 5.387a1 1 0 0 1-1.414 1.414l-5.387-5.387A8 8 0 0 1 2 10" /> </svg> </button> </div> </div> <div id="suggestionsList"></div> </div> </div> <script> $(document).ready(function() { const $searchInput = $('#searchInput'); const $suggestionsList = $('#suggestionsList'); $searchInput.on('input', function() { const searchQuery = $searchInput.val().trim().toLowerCase(); if (!searchQuery) { $suggestionsList.hide(); return; } $.ajax({ url: '', type: 'GET', data: { query: searchQuery }, success: function(data) { let displayedResults = ''; // Handle Users if (data.users.length > 0) { displayedResults += '<h>Users</h>'; let displayedUsers = data.users.slice(0, 3).map(user => ` <div class="suggestion-item"> <a href="${user.url}"> <img src="${user.img}" alt="${user.full_name}"> <div class="user-info"> <div class="full_name">${user.full_name}</div> </div> </a> </div> `).join(''); // Add "More options" button if there are more than 3 users if (data.users.length > 3) { displayedUsers += ` <div class="suggestion-item more-options"> <a href="javascript:void(0);" class="showMore" data-type="users">More</a> </div> `; } displayedResults += `<div id="usersList">${displayedUsers}</div>`; } // Handle Posts if (data.posts.length > 0) { displayedResults += '<h3>Posts</h3>'; let displayedPosts = data.posts.slice(0, 3).map(post => ` <div class="suggestion-item"> <a href="${post.url}"> <div class="user-info"> <div class="full_name">${post.title}</div> </div> </a> </div> `).join(''); // Add "More options" button if there are more than 3 posts if (data.posts.length > 3) { displayedPosts += ` <div class="suggestion-item more-options"> <a href="javascript:void(0);" class="showMore" data-type="posts">More </a> </div> `; } displayedResults += `<div id="postsList">${displayedPosts}</div>`; } // Handle Channels if (data.channels.length > 0) { displayedResults += '<h3>Channels</h3>'; let displayedChannels = data.channels.slice(0, 3).map(channel => ` <div class="suggestion-item"> <a href="${channel.url}"> <img src="${channel.img}" alt="${channel.channel_name}"> <div class="user-info"> <div class="full_name">${channel.channel_name}</div> </div> </a> </div> `).join(''); // Add "More options" button if there are more than 3 channels if (data.channels.length > 3) { displayedChannels += ` <div class="suggestion-item more-options"> <a href="javascript:void(0);" class="showMore" data-type="channels">More </a> </div> `; } displayedResults += `<div id="channelsList">${displayedChannels}</div>`; } // Display the results or hide if empty if (displayedResults) { $suggestionsList.html(displayedResults).show(); } else { $suggestionsList.hide(); } // Show all results when "More options" is clicked $('.showMore').on('click', function() { let type = $(this).data('type'); // Get type (users, posts, channels) let allResults = ''; if (type === 'users') { allResults = data.users.map(user => ` <div class="suggestion-item"> <a href="${user.url}"> <img src="${user.img}" alt="${user.full_name}"> <div class="user-info"> <div class="full_name">${user.full_name}</div> </div> </a> </div> `).join(''); $('#usersList').html(allResults); } if (type === 'posts') { allResults = data.posts.map(post => ` <div class="suggestion-item"> <a href="${post.url}"> <div class="user-info"> <div class="full_name">${post.title}</div> </div> </a> </div> `).join(''); $('#postsList').html(allResults); } if (type === 'channels') { allResults = data.channels.map(channel => ` <div class="suggestion-item"> <a href="${channel.url}"> <div class="user-info"> <div class="full_name">${channel.channel_name}</div> </div> </a> </div> `).join(''); $('#channelsList').html(allResults); } }); }, error: function() { console.log("Error fetching results"); } }); }); }); </script> <? include 'assets/php/bottom_navbar.php' ?> <? include 'assets/php/footer.php' ?> </body> </html>