~jadedctrl/jam-xwx-moe

Showing details for patch 20205d2e1b49d7bdd14f2a91bc5a6c741a6aecb3.
2023-09-18 (Mon), 4:06 PM - - 20205d2e1b49d7bdd14f2a91bc5a6c741a6aecb3

Renomigas la “bloat” doiserujon al “bloat-fe”

Summary of changes
diff -rN -u old-jam-xwx-moe/bloat/bloat.conf new-jam-xwx-moe/bloat/bloat.conf
--- old-jam-xwx-moe/bloat/bloat.conf	2024-11-22 17:15:55.441621673 +0000
+++ new-jam-xwx-moe/bloat/bloat.conf	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-# Format:
-# - Lines starting with a '#' are ignored
-# - Key and Value are separated by a single '='
-# - Leading and trailing white spaces in Key and Value are ignored
-# - Quoting and multi-line values are not supported
-
-# Address to listen to. Value can be of "HOSTNAME:PORT" or "IP:PORT" form. In
-# case of empty HOSTNAME or IP, "0.0.0.0:PORT" is used.
-# Example: ":8080", "bloat.mydomain.com"
-listen_address=127.0.0.1:8090
-
-# Full URL of the website. Users will be redirected to this URL after
-# authentication.
-# Example: "http://localhost:8080", "https://bloat.mydomain.com"
-client_website=https://jam.xwx.moe:1337
-
-# Name of the client.
-client_name=Mancardo Jamada
-
-# Mastadon scopes used by the client.
-# See https://docs.joinmastodon.org/api/oauth-scopes/
-client_scope=read write follow
-
-# Path of directory containing template files.
-templates_path=instance/ŝablonoj
-
-# Path of directory containing static files (CSS and JS).
-static_directory=instance/ktp
-
-# Supported post formats. Value is a list of key:value pair separated by a ','.
-# Empty value will disable the format selection in frontend.
-post_formats=PlainText:text/plain,HTML:text/html,Markdown:text/markdown,BBCode:text/bbcode
-
-# Log file. Will log to stdout if value is empty.
-# log_file=log
-
-# In single instance mode, bloat will not ask for instance domain name and
-# user will be directly redirected to login form. User login from other
-# instances is not allowed in this mode.
-# Empty value disables single instance mode.
-single_instance=jam.xwx.moe
-
-# Path to custom CSS. Value can be a file path relative to the static directory.
-# or a URL starting with either "http://" or "https://".
-# custom_css=custom.css
Binary files old-jam-xwx-moe/bloat/instance/ktp/favicon.png and new-jam-xwx-moe/bloat/instance/ktp/favicon.png differ
diff -rN -u old-jam-xwx-moe/bloat/instance/ktp/fluoride.js new-jam-xwx-moe/bloat/instance/ktp/fluoride.js
--- old-jam-xwx-moe/bloat/instance/ktp/fluoride.js	2024-11-22 17:15:55.441621673 +0000
+++ new-jam-xwx-moe/bloat/instance/ktp/fluoride.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,332 +0,0 @@
-// @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0
-
-var reverseActions = {
-	"like": "senŝati",
-	"unlike": "ŝati",
-	"retweet": "malripeti",
-	"unretweet": "ripeti"
-};
-
-var csrfToken = "";
-var antiDopamineMode = false;
-
-function checkCSRFToken() {
-	var tag = document.querySelector("meta[name='csrf_token']");
-	if (tag)
-		csrfToken = tag.getAttribute("content");
-}
-
-function checkAntiDopamineMode() {
-	var tag = document.querySelector("meta[name='antidopamine_mode']");
-	if (tag)
-		antiDopamineMode = tag.getAttribute("content") === "true";
-}
-
-function http(method, url, body, type, success, error) {
-	var req = new XMLHttpRequest();
-	req.onload = function() {
-		if (this.status === 200 && typeof success === "function") {
-			success(this.responseText, this.responseType);
-		} else if (typeof error === "function") {
-			error(this.responseText);
-		}
-	};
-	req.onerror = function() {
-		if (typeof error === "function") {
-			error(this.responseText);
-		}
-	};
-	req.open(method, url);
-	req.setRequestHeader("Content-Type", type);
-	req.send(body);
-}
-
-function updateActionForm(id, f, action) {
-	f.querySelector("[type='submit']").value = action;
-	f.action = "/" + action + "/" + id;
-	f.dataset.action = action;
-}
-
-function handleLikeForm(id, f) {
-	f.onsubmit = function(event) {
-		event.preventDefault();
-
-		var action = f.dataset.action;
-		var forms = document.
-			querySelectorAll(".status-"+id+" .status-like");
-		for (var i = 0; i < forms.length; i++) {
-			updateActionForm(id, forms[i], reverseActions[action]);
-		}
-
-		var body = "csrf_token=" + encodeURIComponent(csrfToken);
-		var contentType = "application/x-www-form-urlencoded";
-		http("POST", "/fluoride/" + action + "/" + id, 
-			body, contentType, function(res, type) {
-
-			if (antiDopamineMode)
-				return;
-			var data = JSON.parse(res);
-			var count = data.data;
-			if (count === 0)
-				count = "";
-			var counts = document.
-				querySelectorAll(".status-"+id+" .status-like-count");
-			for (var i = 0; i < counts.length; i++) {
-				if (count > 0) {
-					counts[i].innerHTML = "(" + count + ")";
-				} else {
-					counts[i].innerHTML = "";
-				}
-			}
-		}, function(err) {
-			for (var i = 0; i < forms.length; i++) {
-				updateActionForm(id, forms[i], action);
-			}
-		});
-	}
-}
-
-function handleRetweetForm(id, f) {
-	f.onsubmit = function(event) {
-		event.preventDefault();
-
-		var action = f.dataset.action;
-		var forms = document.
-			querySelectorAll(".status-"+id+" .status-retweet");
-		for (var i = 0; i < forms.length; i++) {
-			updateActionForm(id, forms[i], reverseActions[action]);
-		}
-
-		var body = "csrf_token=" + encodeURIComponent(csrfToken);
-		var contentType = "application/x-www-form-urlencoded";
-		http("POST", "/fluoride/" + action + "/" + id, 
-			body, contentType, function(res, type) {
-
-			if (antiDopamineMode)
-				return;
-			var data = JSON.parse(res);
-			var count = data.data;
-			if (count === 0)
-				count = "";
-			var counts = document.
-				querySelectorAll(".status-"+id+" .status-retweet-count");
-			for (var i = 0; i < counts.length; i++) {
-				if (count > 0) {
-					counts[i].innerHTML = "(" + count + ")";
-				} else {
-					counts[i].innerHTML = "";
-				}
-			}
-		}, function(err) {
-			for (var i = 0; i < forms.length; i++) {
-				updateActionForm(id, forms[i], action);
-			}
-		});
-	}
-}
-
-function isInView(el) {
-	var ract = el.getBoundingClientRect();
-	if (ract.top > 0 && ract.bottom < window.innerHeight)
-		return true;
-	return false;
-}
-
-function handleReplyToLink(a) {
-	if (!a)
-		return;
-	var id = a.getAttribute("href");
-	if (!id || id[0] != "#")
-		return;
-	a.onmouseenter = function(event) {
-		var id = event.target.getAttribute("href");
-		var status = document.querySelector(id);
-		if (!status)
-			return;
-		if (isInView(status)) {
-			status.classList.add("highlight");
-		} else {
-			var copy = status.cloneNode(true);
-			copy.id = "reply-to-popup";
-			var ract = event.target.getBoundingClientRect();
-			copy.style["max-width"] = (window.innerWidth - ract.left - 32) + "px";
-			if (ract.top > window.innerHeight / 2) {
-				copy.style.bottom = (window.innerHeight - 
-					window.scrollY - ract.top) + "px";
-			}
-			event.target.parentElement.appendChild(copy);
-		}
-	}
-	a.onmouseleave = function(event) {
-		var popup = document.getElementById("reply-to-popup");
-		if (popup) {
-			event.target.parentElement.removeChild(popup);    
-		} else {
-			var id = event.target.getAttribute("href");
-			document.querySelector(id)
-				.classList.remove("highlight");
-		}
-	}
-}
-
-function handleReplyLink(a) {
-	a.onmouseenter = function(event) {
-		var id = event.target.getAttribute("href");
-		var status = document.querySelector(id);
-		if (!status)
-			return;
-		if (isInView(status)) {
-			status.classList.add("highlight");
-		} else {
-			var copy = status.cloneNode(true);
-			copy.id = "reply-popup";
-			var ract = event.target.getBoundingClientRect();
-			copy.style["max-width"] = (window.innerWidth - 98) + "px";
-			if (ract.left > window.innerWidth / 2) {
-				copy.style.right = (window.innerWidth -
-					ract.right - 12) + "px";
-			}
-			event.target.parentElement.appendChild(copy);
-		}
-	}
-	a.onmouseleave = function(event) {
-		var popup = document.getElementById("reply-popup");
-		if (popup) {
-			event.target.parentElement.removeChild(popup);
-		} else {
-			var id = event.target.getAttribute("href");
-			document.querySelector(id).classList.remove("highlight");
-		}
-	}
-}
-
-function handleStatusLink(a) {
-	if (a.classList.contains("mention"))
-		a.removeAttribute("target");
-	else
-		a.target = "_blank";
-}
-
-function setPos(el, cx, cy, mw, mh) {
-	var h = el.clientHeight;
-	var w = el.clientWidth;
-	var left, top;
-	if (cx < mw/2) {
-		if (w + cx + 20 < mw) {
-			left = cx + 20; 
-		} else {
-			left = (mw - w);
-		}
-	} else {
-		if (cx - w - 20 > 0) {
-			left = cx - w - 20; 
-		} else {
-			left = 0;
-		}
-	}
-	top = (cy - (h/2));
-	if (top < 0) {
-		top = 0;
-	} else if (top + h > mh) {
-		top = (mh - h);
-	} 
-	el.style.left = left + "px";
-	el.style.top = top + "px";
-}
-
-var imgPrev = null;
-var imgX = 0;
-var imgY = 0;
-function handleImgPreview(a) {
-	a.onmouseenter = function(e) {
-		var mw = document.documentElement.clientWidth;
-		var mh = document.documentElement.clientHeight - 24;
-		imgX = e.clientX;
-		imgY = e.clientY;
-		var img = document.createElement("img");
-		img.id = "img-preview";
-		img.src = e.target.getAttribute("href");
-		img.style["max-width"] = mw + "px";
-		img.style["max-height"] = mh + "px";
-		imgPrev = img;
-		img.onload = function(e2) {
-			setPos(imgPrev, imgX, imgY, mw, mh);
-		}
-		document.body.appendChild(img);
-	}
-	a.onmouseleave = function(e) {
-		var img = document.getElementById("img-preview");
-		if (img)
-			document.body.removeChild(img);
-		imgPrev = null;
-	}
-	a.onmousemove = function(e) {
-		if (!imgPrev)
-			return;
-		var mw = document.documentElement.clientWidth;
-		var mh = document.documentElement.clientHeight - 24;
-		imgX = e.clientX;
-		imgY = e.clientY;
-		setPos(imgPrev, imgX, imgY, mw, mh);
-	}
-}
-
-function onPaste(e) {
-	if (!e.clipboardData.files)
-		return;
-	var fp = document.querySelector("#post-file-picker")
-	var dt = new DataTransfer();
-	for (var i = 0; i < fp.files.length; i++) {
-		dt.items.add(fp.files[i]);
-	}
-	for (var i = 0; i < e.clipboardData.files.length; i++) {
-		dt.items.add(e.clipboardData.files[i]);
-	}
-	fp.files = dt.files;
-}
-
-document.addEventListener("DOMContentLoaded", function() { 
-	checkCSRFToken();
-	checkAntiDopamineMode();
-
-	var statuses = document.querySelectorAll(".status-container");
-	for (var i = 0; i < statuses.length; i++) {
-		var s = statuses[i];
-		var id = s.dataset.id;
-
-		var likeForm = s.querySelector(".status-like");
-		handleLikeForm(id, likeForm);
-
-		var retweetForm = s.querySelector(".status-retweet");
-		handleRetweetForm(id, retweetForm);
-
-		var replyToLink = s.querySelector(".status-reply-to-link");
-		handleReplyToLink(replyToLink);
-
-		var replyLinks = s.querySelectorAll(".status-reply-link");
-		for (var j = 0; j < replyLinks.length; j++) {
-			handleReplyLink(replyLinks[j]);
-		}
-
-		var links = s.querySelectorAll(".status-content a");
-		for (var j = 0; j < links.length; j++) {
-			handleStatusLink(links[j]);
-		}
-	}
-
-	var links = document.querySelectorAll(".user-profile-decription a, .user-fields a");
-	for (var j = 0; j < links.length; j++) {
-		links[j].target = "_blank";
-	}
-
-	var links = document.querySelectorAll(".status-media-container .img-link");
-	for (var j = 0; j < links.length; j++) {
-		handleImgPreview(links[j]);
-	}
-
-	var pf = document.querySelector(".post-form")
-	if (pf)
-		pf.addEventListener("paste", onPaste);
-});
-
-// @license-end
diff -rN -u old-jam-xwx-moe/bloat/instance/ktp/style.css new-jam-xwx-moe/bloat/instance/ktp/style.css
--- old-jam-xwx-moe/bloat/instance/ktp/style.css	2024-11-22 17:15:55.441621673 +0000
+++ new-jam-xwx-moe/bloat/instance/ktp/style.css	1970-01-01 00:00:00.000000000 +0000
@@ -1,648 +0,0 @@
-body {
-	background-color: #f7f7f7;
-}
-
-.status-container-container {
-	margin: 0 -4px 12px -4px;
-	padding: 4px;
-	border-left: 4px solid transparent;
-}
-
-.status-container-container:target {
-	background-color: #faf0bb;
-}
-
-.status-container-container.highlight {
-	background-color: #faf0bb;
-}
-
-.status-container {
-	display: flex;
-}
-
-.status-content {
-	margin: 4px 0;
-	max-height: 600px;
-	overflow: auto;
-	overflow-wrap: break-word;
-}
-
-.status-name {
-	overflow-wrap: break-word;
-}
-
-.status-content p {
-	margin: 0px;
-}
-
-.status-content img,
-.status-image,
-.status-video {
-	height: auto;
-	width: auto;
-	max-height: 240px;
-	max-width: 280px;
-	vertical-align: bottom;
-	object-fit: contain;
-}
-
-.status-media-container {
-	margin: 5px 0 -5px 0;
-	overflow: auto;
-}
-
-.status-media-container>a {
-	margin-bottom: 5px;
-	display: inline-block;
-}
-
-.status-profile-img-container {
-	margin-right: 8px;
-	display: inline-block;
-	vertical-align: top;
-}
-
-.status-profile-img {
-	height: 48px;
-	width: 48px;
-	min-height: 48px;
-	min-width: 48px;
-	max-height: 48px;
-	max-width: 48px;
-	vertical-align: top;
-	object-fit: contain;
-	margin-top: 2px;
-}
-
-.status {
-	display: inline-block;
-	vertical-align: top;
-	flex: 1;
-	min-width: 0;
-}
-
-.status-dname {
-	font-weight: 800;
-}
-
-.status-uname {
-	font-style: italic;
-	font-size: 10pt;
-}
-
-.status-action-container {
-	margin-top: 4px;
-}
-
-.status-action {
-	display: inline-block;
-	margin-right: 16px;
-}
-
-.status-action-last {
-	margin-right: 4px;
-}
-
-.status-action form {
-	display: inline-block;
-}
-
-.status-action a {
-	display: inline-block;
-}
-
-.status-action * {
-	vertical-align: middle;
-}
-
-.status-action a.status-time {
-	width: auto;
-}
-
-.page-title {
-	font-size: 18pt;
-	margin: 8px 0;
-	background-color: #e2c2f2;
-}
-
-.post-form {
-	margin: 4px 0;
-}
-
-.post-form>div {
-	margin-bottom: 4px;
-}
-
-.signin-form {
-	margin: 8px 0;
-}
-
-.signin-form input {
-	margin: 4px 0;
-}
-
-.retweet-info {
-	margin: 0 0 4px 24px;
-	overflow-wrap: break-word;
-}
-
-.retweet-info .status-profile-img {
-	height: 24px;
-	width: 24px;
-	min-height: 24px;
-	min-width: 24px;
-	max-height: 24px;
-	max-width: 24px;
-	vertical-align: middle;
-}
-
-.retweet-info .status-dname {
-	margin-left: 4px;
-}
-
-textarea {
-	padding: 4px;
-	font-size: 11pt;
-	font-family: initial;
-}
-
-.post-content {
-	box-sizing: border-box;
-	width: 100%;
-}
-
-#css {
-	box-sizing: border-box;
-	max-width: 100%;
-}
-
-.pagination {
-	margin: 4px 4px 12px 4px;
-}
-
-.pagination a {
-	margin: 0 8px;
-	font-size: 13pt;
-}
-
-.notification-container {
-	margin: 0 -4px 12px -4px;
-	padding: 4px;
-	border-left: 4px solid transparent;
-}
-
-.notification-container.unread {
-	border-color: #777777;
-}
-
-.notification-container .status-container {
-	opacity: 0.6;
-}
-
-.notification-container.mention .status-container {
-	opacity: unset;
-}
-
-.notification-info-text span {
-	vertical-align: middle;
-}
-
-.notification-follow-container {
-	overflow: auto;
-	display: flex;
-	align-items: center;
-}
-
-.notification-follow {
-	overflow: auto;
-}
-
-.notification-time {
-	margin-left: 8px;
-}
-
-.status-reply-to-link {
-	font-size: 10pt
-}
-
-.status-reply-container {
-	overflow-wrap: break-word;
-}
-
-.status-reply-container .fa {
-	font-size: 10pt;
-	vertical-align: sub;
-	margin-right: -2px;
-}
-
-.status-reply-text {
-	font-size: 10pt;
-}
-
-.status-reply-link {
-	font-size: 10pt;
-}
-
-.status-reply-info-divider {
-	margin: 0 4px;
-}
-
-.post-content-container {
-	padding-right: 8px;
-}
-
-.error-text {
-	margin: 8px 0;
-}
-
-.post-attachment-div {
-	margin: 2px 0;
-}
-
-.user-profile-img-container {
-	display: inline-block;
-	margin: 0 4px 4px 0;
-}
-
-.user-profile-details-container {
-	display: inline-block;
-	vertical-align: top;
-}
-
-.user-profile-details-container>div {
-	margin-bottom: 4px;
-}
-
-.user-profile-img {
-	height: 96px;
-	width: 96px;
-	vertical-align: top;
-	object-fit: contain;
-	margin-top: 2px;
-}
-
-.user-profile-decription,
-.user-fields {
-	overflow-wrap: break-word;
-	margin: 8px 0;
-}
-
-.user-profile-decription p {
-	margin: 0;
-}
-
-.user-profile-decription img {
-	height: auto;
-	width: auto;
-	max-height: 240px;
-	max-width: 280px;
-	object-fit: contain;
-}
-
-.d-inline {
-	display: inline;
-}
-
-.p-0 {
-	padding: 0;
-}
-
-.btn-link {
-	border: none;
-	outline: none;
-	background: none;
-	cursor: pointer;
-	padding: 0;
-	font-family: inherit;
-	font-size: inherit;
-}
-
-a, .btn-link {
-	color: #806c0d;
-	text-decoration: none;
-}
-
-a:hover,
-.btn-link:hover {
-	color: #806c0d;
-	text-decoration: underline;
-}
-
-.status-visibility {
-	margin-left: 4px;
-	display: inline-block;
-	color: #222222;
-	font-size: 8pt;
-}
-
-.remote-link {
-	margin-left: 4px;
-	font-size: 8pt;
-}
-
-.img-link {
-	display: inline-block;
-	position: relative;
-}
-
-.status-media-container .img-link {
-	width: 384px;
-}
-
-.status-profile-img-container .img-link {
-	width: 48px;
-}
-
-.status-nsfw-overlay {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	background-color: #a7bbb9;
-	color: #a7bbb9;
-	height: 240px;
-	max-height: 100%;
-}
-
-.img-link:hover .status-nsfw-overlay {
-	display: none;
-}
-
-.status-video-container {
-	display: inline-block;
-	position: relative;
-	margin-bottom: 5px;
-}
-
-.status-video-container:hover .status-nsfw-overlay {
-	display: none;
-}
-
-.emoji-item-container {
-	width: 220px;
-	display: inline-block;
-	margin: 4px 0;
-	overflow: hidden;
-}
-
-.emoji-item {
-	display: flex;
-	align-items: center;
-}
-
-img.emoji {
-	height: auto;
-	width: auto;
-	max-height: 32px;
-	max-width: 32px;
-	min-height: 32px;
-	min-width: 32px;
-	vertical-align: middle;
-	object-fit: contain;
-	margin: 0;
-}
-
-.status-dname img.emoji {
-	height: 24px;
-	min-height: 24px;
-	min-width: 24px;
-}
-
-.emoji-shortcode {
-	margin-left: 4px;
-}
-
-.post-form-emoji-link {
-	margin-left: 4px;
-}
-
-.user-info-img {
-	height: 64px;
-	width: 64px;
-	vertical-align: middle;
-	object-fit: contain;
-	margin-top: 2px;
-}
-
-.user-info-img-container {
-	float: left;
-	margin-right: 8px;
-}
-
-.user-info-details-container {
-	overflow: auto;
-}
-
-.user-info-details-name,
-.user-info-details-nav {
-	margin-bottom: 4px;
-}
-
-.nav-link {
-	margin-right: 2px;
-}
-
-.user-list-item {
-	overflow: auto;
-	margin: 0 0 12px 0;
-	display: flex;
-	align-items: center;
-}
-
-.user-list-profile-img {
-	float: left;
-	margin: 0 8px 0 0;
-}
-
-.user-list-name {
-	overflow: auto;
-}
-
-.user-list-action {
-	margin: 0 12px;
-}
-
-#settings-form {
-	margin: 8px 0;
-}
-
-.settings-form-field {
-	margin: 4px 0;
-}
-
-#settings-form button[type=submit] {
-	margin-top: 8px;
-}
-
-#reply-popup {
-	position: absolute;
-	background-color: #d2d2d2;
-	border: 1px solid #aaaaaa;
-	padding: 4px 8px;
-	z-index: 3;
-	margin: 0;
-}
-
-#reply-to-popup {
-	position: absolute;
-	background-color: #d2d2d2;
-	border: 1px solid #aaaaaa;
-	padding: 4px 8px;
-	z-index: 3;
-	margin: 0;
-}
-
-.search-form {
-	margin: 12px 0;
-}
-
-.more-container {
-	position: relative;
-	display: inline-block;
-}
-
-.more-content {
-	display: none;
-	position: absolute;
-	background-color: #d2d2d2;
-	padding: 2px 4px;
-	border: 1px solid #aaaaaa;
-	z-index: 1;
-}
-
-.more-container:hover .more-content {
-	display: block;
-}
-
-.more-link {
-	font-size: 8pt;
-	display: block;
-	margin: 2px;
-}
-
-.poll-form {
-	margin-top: 5px;
-	overflow: auto;
-	overflow-wrap: break-word;
-}
-
-.poll-form button[type=submit] {
-	margin-top: 6px;
-}
-
-.poll-info {
-	margin-top: 6px;
-}
-
-.page-title-container {
-	margin: 8px 0;
-}
-
-.page-refresh {
-	margin-right: 8px;
-}
-
-.notification-text {
-	vertical-align: middle;
-}
-
-.notification-read {
-	display: inline-block;
-}
-
-.no-data-found {
-	margin: 12px 0;
-}
-
-.signout {
-	display: inline;
-}
-
-.signin-desc {
-	margin: 8px 0 16px 0;
-}
-
-.keyboard-shortcuts {
-	margin-top: 12px;
-}
-
-.keyboard-shortcuts td {
-	padding: 2px 4px;
-}
-
-kbd {
-	border-radius: 3px;
-	padding: 1px 4px;
-	border: 1px solid #444444;
-	background-color: #eeeeee;
-	font-size: 10pt;
-}
-
-.filters {
-	margin: 10px 0;
-}
-
-.filters td {
-	padding: 2px 4px;
-}
-
-#img-preview {
-	pointer-events: none;
-	z-index: 2;
-	position: fixed;
-}
-
-.quote {
-	color: #789922;
-}
-
-.dark {
-	background-color: #222222;
-	background-image: none;
-	color: #eaeaea;
-}
-
-.dark a {
-	color: #81a2be;
-}
-
-.dark textarea {
-	background-color: #333333;
-	border: 1px solid #444444;
-	color: #eaeaea;
-}
-
-.dark #reply-popup,
-.dark #reply-to-popup {
-	background-color: #222222;
-	border-color: #444444;
-}
-
-.dark .status-container-container.highlight {
-	background-color: #333333;
-}
-
-.dark .btn-link {
-	color: #81a2be;
-}
-
-.dark a:hover,
-.dark .btn-link:hover {
-	color: #497091;
-}
-
-.dark .status-visibility {
-	color: #eaeaea;
-}
-
-.dark .more-content {
-	background-color: #222222;
-	border-color: #444444;
-}
-
-.dark kbd {
-	background-color: #333333;
-	border-color: #444444;
-	color: #eaeaea;
-}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/about.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/about.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/about.tmpl"	2024-11-22 17:15:55.441621673 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/about.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,109 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-
-<div class="page-title"> Pri </div>
-<div>
-	<p>
-		Retejkliento por <a href="https://pleroma.social" target="_blank">federujo</a>.
-	</p>
-	<p>
-		La fontkodo estas sub la permesilo 
-		<a href="https://creativecommons.org/publicdomain/zero/1.0/legalcode" target="_blank">CC0</a> 
-		kaj akireblas de 
-		<a href="https://git.freesoftwareextremist.com/bloat" target="_blank">git.freesoftwareextremist.com/bloat</a>.
-	</P>
-</div>
-
-<div class="page-title"> Ŝparklavoj </div>
-<div>
-	<table class="keyboard-shortcuts">
-		<tr>
-			<td> Uzantprofilo </td>
-			<td> <kbd>0</kbd> </td>
-		</tr>
-		<tr>
-			<td> Hejma historio </td>
-			<td> <kbd>1</kbd> </td>
-		</tr>
-		<tr>
-			<td> Rekta historio </td>
-			<td> <kbd>2</kbd> </td>
-		</tr>
-		<tr>
-			<td> Noda historio </td>
-			<td> <kbd>3</kbd> </td>
-		</tr>
-		<tr>
-			<td> Federa historio </td>
-			<td> <kbd>4</kbd> </td>
-		</tr>
-		<tr>
-			<td> Alinoda historio </td>
-			<td> <kbd>5</kbd> </td>
-		</tr>
-		<tr>
-			<td> Serĉi </td>
-			<td> <kbd>6</kbd> </td>
-		</tr>
-		<tr>
-			<td> Listoj </td>
-			<td> <kbd>7</kbd> </td>
-		</tr>
-		<tr>
-			<td> Agordoj </td>
-			<td> <kbd>8</kbd> </td>
-		</tr>
-		<tr>
-			<td> Pri </td>
-			<td> <kbd>9</kbd> </td>
-		</tr>
-		<tr>
-			<td> Bildosignoj </td>
-			<td> <kbd>L</kbd> </td>
-		</tr>
-		<tr>
-			<td> Redakti afiŝon </td>
-			<td> <kbd>E</kbd> </td>
-		</tr>
-		<tr>
-			<td> Afiŝoformo </td>
-			<td> <kbd>F</kbd> </td>
-		</tr>
-		<tr>
-			<td> Afiŝocelo </td>
-			<td> <kbd>S</kbd> </td>
-		</tr>
-		<tr>
-			<td> Marki kiel konsterna </td>
-			<td> <kbd>N</kbd> </td>
-		</tr>
-		<tr>
-			<td> Kunmeti dosieron al afiŝo </td>
-			<td> <kbd>A</kbd> </td>
-		</tr>
-		<tr>
-			<td> Afiŝi </td>
-			<td> <kbd>P</kbd> </td>
-		</tr>
-		<tr>
-			<td> Reenlegi sciigojn </td>
-			<td> <kbd>R</kbd> </td>
-		</tr>
-		<tr>
-			<td> Marki sciigojn kiel legitaj </td>
-			<td> <kbd>C</kbd> </td>
-		</tr>
-		<tr>
-			<td> Reenlegi historion/afiŝaron </td>
-			<td> <kbd>T</kbd> </td>
-		</tr>
-	</table>
-	<p>
-		Vi povas uzi ĉi tiujn ŝparklavojn per kunpremo kun la <a href="https://en.wikipedia.org/wiki/Access_key#Access_in_different_browsers" target="_blank">alternativa klavo</a> de via retfoliumilo, 
-		kiu plejofte estas <a>ALT</kbd> + <kbd>Shift</kbd>.
-	</p>
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
-
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/emoji.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/emoji.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/emoji.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/emoji.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Bildosignoj </div>
-
-<div class="emoji-list-container">
-	{{range .Emojis}}
-	<div class="emoji-item-container">
-		<div class="emoji-item">
-			<img class="emoji" src="{{.URL}}" alt="{{.ShortCode}}" height="32" loading="lazy" />
-			<span title=":{{.ShortCode}}:" class="emoji-shortcode">:{{.ShortCode}}:</span>
-		</div>
-	</div>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/error.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/error.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/error.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/error.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Eraro </div>
-
-<div class="error-text"> {{.Err}} </div>
-<div>
-	<a href="/timeline/home">hejmo</a>
-	{{if .Retry}}
-	<a href="{{$.Ctx.Referrer}}">reprovi</a>
-	{{end}}
-	{{if .SessionErr}}
-	<a href="/signin" target="_top">saluti</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/filters.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/filters.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/filters.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/filters.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,40 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Filtriloj </div>
-
-{{if .Filters}}
-<table class="filters">
-	{{range .Filters}}
-	<tr>
-		<td> {{.Phrase}}{{if not .WholeWord}}*{{end}} </td>
-		<td> 
-			<form action="/unfilter/{{.ID}}" method="POST">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<button type="submit"> Forigi </button>
-			</form>
-		</td>
-	</tr>
-	{{end}}
-</table>
-{{else}}
-	<div class="filters"> Neniu filtrilo agordita </div>
-{{end}}
-
-<div class="page-title"> Krei filtrilon </div>
-<form action="/filter" method="POST">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	<span class="settings-form-field">
-		<label for="phrase"> Vorto(j) </label>
-		<input id="phrase" name="phrase" required>
-	</span>
-	<span class="settings-form-field">
-		<input id="whole-word" name="whole_word" type="checkbox" value="true" checked>
-		<label for="whole-word"> Tutmonde </label>
-	</span>
-	<button type="submit"> Krei </button>
-</form>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/footer.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/footer.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/footer.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/footer.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-</body>
-</html>
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/header.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/header.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/header.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/header.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-{{with .Data}}
-<!DOCTYPE html>
-<html lang="eo">
-<head>
-	<meta charset='utf-8'>
-	<link rel="icon" type="image/png" href="/static/favicon.png">
-	<meta content='width=device-width, initial-scale=1' name='viewport'>
-	{{if .Target}}
-	<base href="" target="{{.Target}}">
-	{{end}}
-	{{if .CSRFToken}}
-	<meta name="csrf_token" content="{{.CSRFToken}}">
-	{{end}}
-	{{if $.Ctx.AntiDopamineMode}}
-	<meta name="antidopamine_mode" content="{{$.Ctx.AntiDopamineMode}}">
-	{{end}}
-	{{if .RefreshInterval}}
-	<meta http-equiv="refresh" content="{{.RefreshInterval}}">
-	{{end}}
-	<title> {{if gt .Count 0}}({{.Count}}){{end}} {{.Title}} </title>
-	<link rel="stylesheet" href="/static/style.css">
-	{{if .CustomCSS}}
-	<link rel="stylesheet" href="{{.CustomCSS}}">
-	{{end}}
-	{{if $.Ctx.FluorideMode}}
-	<script src="/static/fluoride.js"></script>
-	{{end}}
-	{{if $.Ctx.UserCSS}}
-	<style>{{RawCSS $.Ctx.UserCSS}}</style>
-	{{end}}
-</head>
-<body {{if $.Ctx.DarkMode}}class="dark"{{end}}>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/likedby.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/likedby.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/likedby.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/likedby.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Ŝatita de </div>
-
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/lists.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/lists.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/lists.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/lists.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Listoj </div>
-
-{{range .Lists}}
-<div>
-	<a href="/timeline/list?list={{.ID}}"> {{.Title}} historio </a> 
-	-
-	<form class="d-inline" action="/list/{{.ID}}" method="GET">
-		<button type="submit" class="btn-link"> redakti </button>
-	</form>
-	-
-	<form class="d-inline" action="/list/{{.ID}}/remove" method="POST">
-		<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-		<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-		<button type="submit" class="btn-link"> forigi </button>
-	</form>
-</div>
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-<div class="page-title"> Krei liston </div>
-<form action="/list" method="POST">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	<span class="settings-form-field">
-		<label for="title"> Nomo </label>
-		<input id="title" name="title" required>
-	</span>
-	<button type="submit"> Krei </button>
-</form>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/list.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/list.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/list.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/list.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,63 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Listo {{.List.Title}} </div>
-
-<form action="/list/{{.List.ID}}/rename" method="POST">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	<input id="title" name="title" value="{{.List.Title}}">
-	<button type="submit"> Renomi </button>
-</form>
-
-<div class="page-title"> Uzantoj </div>
-{{if .Accounts}}
-<table>
-{{range .Accounts}}
-	<tr>
-		<td class="p-0"> {{template "userlistitem.tmpl" (WithContext . $.Ctx)}} </td>
-		<td class="p-0"> 
-			<form class="user-list-action" action="/list/{{$.Data.List.ID}}/removeuser?uid={{.ID}}" method="POST">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<button type="submit"> Remove </button>
-			</form>
-		</td>
-	</tr>
-{{end}}
-</table>
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-<div class="page-title"> Aldoni uzanton </div>
-<form class="search-form" action="/list/{{.List.ID}}" method="GET">
-	<span class="post-form-field">
-		<label for="query"> Uzanta serĉmendo </label>
-		<input id="query" name="q" value="{{.Q}}">
-	</span>
-	<button type="submit"> Serĉi </button>
-</form>
-
-{{if .Q}}
-{{if .SearchAccounts}}
-<table>
-{{range .SearchAccounts}}
-	<tr>
-		<td> {{template "userlistitem.tmpl" (WithContext . $.Ctx)}} </td>
-		<td>
-			<form class="user-list-action" action="/list/{{$.Data.List.ID}}/adduser?uid={{.ID}}" method="POST">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<button type="submit"> Aldoni </button>
-			</form>
-		</td>
-	</tr>
-{{end}}
-</table>
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-{{end}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/mute.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/mute.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/mute.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/mute.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Silentigi {{.User.Acct}} </div>
-
-<form action="/mute/{{.User.ID}}" method="POST">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	<div class="settings-form-field">
-		<input id="notifications" name="notifications" type="checkbox" value="true" checked>
-		<label for="notifications"> Malatenti sciigojn </label>
-	</div>
-	<div class="settings-form-field">
-		<label for="duration"> Reatentu </label>
-		<select id="duration" name="duration">
-			<option value="0" selected>Disabled</option>
-			<option value="300">Post 5m</option>
-			<option value="1800">Post 30m</option>
-			<option value="3600">Post 1h</option>
-			<option value="21600">Post 6h</option>
-			<option value="86400">Post 1d</option>
-			<option value="259200">Post 3d</option>
-			<option value="604800">Post 7d</option>
-		</select>
-	</div>
-	<button type="submit"> Silentigi </button>
-</form>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/nav.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/nav.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/nav.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/nav.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,40 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="user-info">
-	<div class="user-info-img-container">
-		<a class="img-link" href="/timeline/home" title="Hejmo (1)">
-			<img class="user-info-img" src="{{.User.Avatar}}" alt="profile-avatar" height="64" />
-		</a>
-	</div>
-	<div class="user-info-details-container">
-		<div class="user-info-details-name">
-			<bdi class="status-dname"> {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}} </bdi>
-			<a class="nav-link" href="/user/{{.User.ID}}" accesskey="0" title="Uzantoprofilo (0)">
-				<span class="status-uname"> @{{.User.Acct}} </span>
-			</a>
-		</div>
-		<div class="user-info-details-nav">
-			<a class="nav-link" href="/timeline/home" accesskey="1" title="Hejma historio (1)">hejmo</a>
-			<a class="nav-link" href="/timeline/direct" accesskey="2" title="Rekta historio (2)">rekta</a>
-			<a class="nav-link" href="/timeline/local" accesskey="3" title="Noda historio (3)">noda</a>
-			<a class="nav-link" href="/timeline/twkn" accesskey="4" title="Federa historio (4)">federa</a>
-			<a class="nav-link" href="/timeline/remote" accesskey="5" title="Fora historio (5)">fora</a>
-			<a class="nav-link" href="/search" accesskey="6" title="Serĉi (6)">serĉi</a>
-		</div>
-		<div>
-			<a class="nav-link" href="/lists" accesskey="7" title="Listoj (7)">listoj</a>
-			<a class="nav-link" href="/settings" target="_top" accesskey="8" title="Agordoj (8)">agordoj</a>
-			<form class="signout" action="/signout" method="post" target="_top">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="signout" class="btn-link nav-link" title="Adiaŭi">
-			</form>
-			<a class="nav-link" href="/about" accesskey="9" title="Pri (9)">pri</a>
-		</div>
-	</div>
-</div>
-
-{{template "postform.tmpl" (WithContext .PostContext $.Ctx)}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/notification.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/notification.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/notification.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/notification.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,128 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title-container">
-	<span class="page-title">
-		Sciigoj
-		{{if and (not $.Ctx.AntiDopamineMode) (gt .UnreadCount 0)}}
-			({{.UnreadCount }})
-		{{end}}
-	</span>
-	<a class="page-refresh" href="/notifications" target="_self" accesskey="R" title="Reenlegi (R)">reenlegi</a>
-	{{if .ReadID}}
-	<form class="notification-read" action="/notifications/read?max_id={{.ReadID}}" method="post" target="_self">
-		<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-		<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-		<input type="submit" value="read" class="btn-link" accesskey="C" title="Marki kiel legitaj (C)">
-	</form>
-	{{end}}
-</div>
-
-{{range .Notifications}}
-<div class="notification-container {{.Type}} {{if .Pleroma}}{{if not .Pleroma.IsSeen}}unread{{end}}{{end}}">
-	{{if eq .Type "follow"}}
-	<div class="notification-follow-container">
-		<div class="status-profile-img-container">
-			<a class="img-link" href="/user/{{.Account.ID}}">
-				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
-			</a>
-		</div>
-		<div class="notification-follow">
-			<div class="notification-info-text">
-				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
-				<span class="notification-text"> abonis vin - 
-					<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
-				</span>
-			</div>
-			<div>
-				<a href="/user/{{.Account.ID}}"> <span class="status-uname"> @{{.Account.Acct}} </span> </a>
-			</div>
-		</div>
-	</div>
-
-	{{else if eq .Type "follow_request"}}
-	<div class="notification-follow-container">
-		<div class="status-profile-img-container">
-			<a class="img-link" href="/user/{{.Account.ID}}">
-				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
-			</a>
-		</div>
-		<div class="notification-follow">
-			<div class="notification-info-text">
-				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
-				<span class="notification-text"> volas abonis vin - 
-					<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
-				</span>
-			</div>
-			<div>
-				<a href="/user/{{.Account.ID}}"> <span class="status-uname"> @{{.Account.Acct}} </span> </a>
-			</div>
-			<form class="d-inline" action="/accept/{{.Account.ID}}" method="post" target="_self">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="accept" class="btn-link">
-			</form>
-			-
-			<form class="d-inline" action="/reject/{{.Account.ID}}" method="post" target="_self">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="reject" class="btn-link">
-			</form>
-		</div>
-	</div>
-
-	{{else if eq .Type "mention"}}
-	{{template "status" (WithContext .Status $.Ctx)}}
-
-	{{else if eq .Type "reblog"}}
-	<div class="retweet-info">
-		<a class="img-link" href="/user/{{.Account.ID}}">
-			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
-		</a>
-		<a href="/user/{{.Account.ID}}">
-			<span class="status-uname"> @{{.Account.Acct}} </span>
-		</a>
-		<span class="notification-text"> ripetis vian afiŝon - 
-			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
-		</span>
-	</div>
-	{{template "status" (WithContext .Status $.Ctx)}}
-
-	{{else if eq .Type "favourite"}}
-	<div class="retweet-info">
-		<a class="img-link" href="/user/{{.Account.ID}}">
-			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
-		</a>
-		<a href="/user/{{.Account.ID}}">
-			<span class="status-uname"> @{{.Account.Acct}} </span>
-		</a>
-		<span class="notification-text"> ŝatis vian afiŝon - 
-			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
-		</span>
-	</div>
-	{{template "status" (WithContext .Status $.Ctx)}}
-
-	{{else}}
-	<div class="retweet-info">
-		<a class="img-link" href="/user/{{.Account.ID}}">
-			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
-		</a>
-		<a href="/user/{{.Account.ID}}">
-			<span class="status-uname"> @{{.Account.Acct}} </span>
-		</a>
-		<span class="notification-text"> {{.Type}} - 
-			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
-		</span>
-	</div>
-	{{if .Status}}{{template "status" (WithContext .Status $.Ctx)}}{{end}}
-	{{end}}
-</div>
-{{end}}
-
-<div class="pagination">
-	{{if .NextLink}}
-		<a href="{{.NextLink}}" target="_self">[sekva]</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/postform.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/postform.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/postform.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/postform.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-{{with .Data}}
-<form class="post-form" action="/post" method="POST" enctype="multipart/form-data" target="_self">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	{{if .ReplyContext}}
-	<input type="hidden" name="reply_to_id" value="{{.ReplyContext.InReplyToID}}" />
-	<input type="hidden" name="quickreply" value="{{.ReplyContext.QuickReply}}" />
-	<label for="post-content" class="post-form-title"> Respondi al @{{.ReplyContext.InReplyToName}} </label>
-	{{else}}
-	<label for="post-content" class="post-form-title"> Nova afiŝo </label>
-	{{end}}
-	<a class="post-form-emoji-link" href="/emojis" target="_blank" title="Bildosignoj (L)" accesskey="L">
-		bildosignoj
-	</a>
-	<div class="post-form-content-container">
-		<textarea id="post-content" name="content" class="post-content" cols="34" rows="5" accesskey="E" title="Redakti afiŝon (E)">{{if .ReplyContext}}{{.ReplyContext.ReplyContent}}{{end}}</textarea>
-	</div>
-	<div>
-		{{if .Formats}}
-		<span class="post-form-field">
-			{{$defFormat := .DefaultFormat}}
-			<select id="post-format" name="format" accesskey="F" title="Formo (F)">
-				{{range .Formats}} 
-					<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option> 
-				{{end}}
-			</select>
-		</span>
-		{{end}}
-		<span class="post-form-field">
-			<select id="post-visilibity" name="visibility" {{if .ReplyContext}}{{if .ReplyContext.ForceVisibility}}disabled{{end}}{{end}} accesskey="S" title="Celo (S)">
-				<option value="public" {{if eq .DefaultVisibility "public"}}selected{{end}}>Publika</option>
-				<option value="unlisted" {{if eq .DefaultVisibility "unlisted"}}selected{{end}}>Nepublika</option>
-				<option value="private" {{if eq .DefaultVisibility "private"}}selected{{end}}>Privata</option>
-				<option value="direct" {{if eq .DefaultVisibility "direct"}}selected{{end}}>Rekta</option>
-			</select>
-		</span>
-		<span class="post-form-field">
-			<input type="checkbox" id="nsfw-checkbox" name="is_nsfw" value="true" accesskey="N" title="Konsterna (N)">
-			<label for="nsfw-checkbox"> Konsterna </label>
-		</span>
-	</div>
-	<div>
-		<span class="post-form-field">
-			<input id="post-file-picker" type="file" name="attachments" multiple accesskey="A" title="Kunsendaĵoj (A)">
-		</span>
-	</div>
-	<button type="submit" accesskey="P" title="Afiŝi (P)"> Afiŝi </button>
-	<button type="reset" title="Reset"> Nuligi </button>
-</form>
-{{end}}
-
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/quickreply.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/quickreply.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/quickreply.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/quickreply.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,12 +0,0 @@
-{{with $s := .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Rapide Respondi </div>
-
-{{if .Ancestor}}
-{{template "status.tmpl" (WithContext .Ancestor $.Ctx)}}
-{{end}}
-{{template "status.tmpl" (WithContext .Status $.Ctx)}}
-{{template "postform.tmpl" (WithContext $s.PostContext $.Ctx)}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/requestlist.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/requestlist.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/requestlist.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/requestlist.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,36 +0,0 @@
-{{with .Data}}
-<div>
-	{{range .}}
-	<div class="user-list-item">
-		<div class="user-list-profile-img">
-			<a class="img-link" href="/user/{{.ID}}">
-				<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
-			</a>
-		</div>
-		<div class="user-list-name">
-			<div>
-				<div class="status-dname"> {{EmojiFilter (HTML .DisplayName) .Emojis | Raw}} </div>
-				<a class="img-link" href="/user/{{.ID}}">
-					<div class="status-uname"> @{{.Acct}} </div>
-				</a>
-			</div>
-			<form class="d-inline" action="/accept/{{.ID}}" method="post" target="_self">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="accept" class="btn-link">
-			</form>
-			-
-			<form class="d-inline" action="/reject/{{.ID}}" method="post" target="_self">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="reject" class="btn-link">
-			</form>
-		</div>
-	</div>
-	{{else}}
-	<div class="no-data-found">Neniu datumo trovita</div>
-	{{end}}
-</div>
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/retweetedby.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/retweetedby.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/retweetedby.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/retweetedby.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Ripetita de </div>
-
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/root.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/root.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/root.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/root.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-{{with .Data}}
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
-	<link rel="icon" type="image/png" href="/static/favicon.png">
-	<title>{{.Title}}</title>
-</head>
-<frameset cols="424px,*">
-	<frameset rows="316px,*">
-		<frame name="nav" src="/nav"> 
-		<frame name="notification" src="/notifications"> 
-	</frameset>
-	<frame name="main" src="/timeline/home"> 
-</frameset>
-</html>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/search.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/search.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/search.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/search.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Serĉi </div>
-
-<form class="search-form" action="/search" method="GET">
-	<span class="post-form-field">
-		<label for="query"> Serĉomendo </label>
-		<input id="query" name="q" value="{{.Q}}">
-	</span>
-	<span class="post-form-field">
-		<label for="type"> Celo </label>
-		<select id="type" name="type">
-			<option value="statuses" {{if eq .Type "statuses"}}selected{{end}}>Afiŝoj</option>
-			<option value="accounts" {{if eq .Type "accounts"}}selected{{end}}>Kontoj</option>
-		</select>
-	</span>
-	<button type="submit"> Serĉi </button>
-</form>
-
-{{if eq .Type "statuses"}}
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-{{if .Q}}<div class="no-data-found">Neniu datumo trovita</div>{{end}}
-{{end}}
-{{end}}
-
-{{if eq .Type "accounts"}}
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-{{end}}
-
-<div class="pagination">
-	{{if .NextLink}}
-		<a href="{{.NextLink}}">[sekva]</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/settings.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/settings.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/settings.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/settings.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,83 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Agordoj </div>
-
-<form id="settings-form" action="/settings" method="POST">
-	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-	{{if .PostFormats}}
-	<div class="settings-form-field">
-		<label for="post-format"> Default format </label>
-		{{$defFormat := .Settings.DefaultFormat}}
-		<select id="post-format" name="format">
-			{{range .PostFormats}} 
-				<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option> 
-			{{end}}
-		</select>
-	</div>
-	{{end}}
-	<div class="settings-form-field">
-		<label for="visibility"> Default scope </label>
-		<select id="visibility" name="visibility">
-			<option value="public" {{if eq .Settings.DefaultVisibility "public"}}selected{{end}}>Publika</option>
-			<option value="unlisted" {{if eq .Settings.DefaultVisibility "unlisted"}}selected{{end}}>Nepublika</option>
-			<option value="private" {{if eq .Settings.DefaultVisibility "private"}}selected{{end}}>Privata</option>
-			<option value="direct" {{if eq .Settings.DefaultVisibility "direct"}}selected{{end}}>Rekta</option>
-		</select>
-	</div>
-	<div class="settings-form-field">
-		<label for="notification-interval"> Reenlegado de sciigoj </label>
-		<select id="notification-interval" name="notification_interval">
-			<option value="0" {{if eq .Settings.NotificationInterval 0}}selected{{end}}>Malŝaltita</option>
-			<option value="30" {{if eq .Settings.NotificationInterval 30}}selected{{end}}>Post 30s</option>
-			<option value="60" {{if eq .Settings.NotificationInterval 60}}selected{{end}}>Post 1m</option>
-			<option value="120" {{if eq .Settings.NotificationInterval 120}}selected{{end}}>Post 2m</option>
-			<option value="300" {{if eq .Settings.NotificationInterval 300}}selected{{end}}>Post 5m</option>
-			<option value="600" {{if eq .Settings.NotificationInterval 600}}selected{{end}}>Post 10m</option>
-		</select>
-	</div>
-	<div class="settings-form-field">
-		<input id="copy-scope" name="copy_scope" type="checkbox" value="true" {{if .Settings.CopyScope}}checked{{end}}>
-		<label for="copy-scope"> Kopii celon respondante </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="thread-tab" name="thread_in_new_tab" type="checkbox" value="true" {{if .Settings.ThreadInNewTab}}checked{{end}}>
-		<label for="thread-tab"> Malfermi interparolojn ĉe novaj langentoj </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="hide-attachments" name="hide_attachments" type="checkbox" value="true" {{if .Settings.HideAttachments}}checked{{end}}>
-		<label for="hide-attachments"> Kaŝi kunsendataj dosieroj </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="mask-nsfw" name="mask_nsfw" type="checkbox" value="true" {{if .Settings.MaskNSFW}}checked{{end}}>
-		<label for="mask-nsfw"> Kaŝi konsternajn dosierojn </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="fluoride-mode" name="fluoride_mode" type="checkbox" value="true" {{if .Settings.FluorideMode}}checked{{end}}>
-		<label for="fluoride-mode"> Ŝalti <abbr title="Ŝalti Ĵavoskriptaj kapabloj aldonaj, ekz., ŝati/ripeti sen reenlego de paĝo kaj antaŭmontro de respondoj ĉe afiŝĉena paĝo">F¯ reĝimon</abbr> </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="anti-dopamine-mode" name="anti_dopamine_mode" type="checkbox"
-		value="true" {{if .Settings.AntiDopamineMode}}checked{{end}}>
-		<label for="anti-dopamine-mode"> Ŝalti <abbr title="Ne nombri ŝatojn/ripetojn/sciigojn kaj ne ricevi ŝatajn/ripetajn/aboniĝajn sciigojn">C₈H₁₁NO₂-kontraŭan reĝimon</abbr> </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="hide-unsupported-notifs" name="hide_unsupported_notifs" type="checkbox"
-		value="true" {{if .Settings.HideUnsupportedNotifs}}checked{{end}}>
-		<label for="hide-unsupported-notifs"> Kaŝi nesubtenatajn sciigojn </label>
-	</div>
-	<div class="settings-form-field">
-		<input id="dark-mode" name="dark_mode" type="checkbox" value="true" {{if .Settings.DarkMode}}checked{{end}}>
-		<label for="dark-mode"> Uzi malhelan haŭton </label>
-	</div>
-	<div class="settings-form-field">
-		<label for="css"> Propra CSS: </label>
-	</div>
-	<div>
-		<textarea id="css" name="css" cols="80" rows="8">{{.Settings.CSS}}</textarea>
-	</div>
-	<button type="submit"> Konservi </button>
-</form>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/signin.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/signin.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/signin.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/signin.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,23 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Bloat </div>
-<div class="signin-desc">
-	Retejkliento por <a href="https://pleroma.social" target="_blank">Federujo</a>.
-</div>
-
-<form class="signin-form" action="/signin" method="post">
-	Entajpu la retnomon de via federuja servilo por saluti
-	<br/>
-	<input type="text" name="instance" placeholder="ekzemplo.com" required>
-	<br/>
-	<button type="submit"> Saluti </button>
-</form>
-
-<p>
-	Vizitu
-	<a href="https://git.freesoftwareextremist.com/bloat" target="_blank">git.freesoftwareextremist.com/bloat</a>
-	por pliaj detaloj.
-</P>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/status.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/status.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/status.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/status.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,247 +0,0 @@
-{{with .Data}}
-<div id="status-{{.ID}}" class="status-container-container">
-	{{if .Reblog}}
-	<div class="retweet-info">
-		<a class="img-link" href="/user/{{.Account.ID}}">
-			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="24" />
-		</a>
-		<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
-		<a href="/user/{{.Account.ID}}"> 
-			<span class="status-uname"> @{{.Account.Acct}} </span> 
-		</a>
-		ripetiĝis
-	</div>
-	{{template "status" (WithContext .Reblog $.Ctx)}}
-	{{else}}
-	{{block "status" (WithContext . $.Ctx)}}
-	{{with $s := .Data}}
-	<div class="status-container status-{{.ID}}" data-id="{{.ID}}">
-		<div class="status-profile-img-container">
-			<a class="img-link" href="/user/{{.Account.ID}}">
-				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
-			</a>
-		</div>
-		<div class="status"> 
-			<div class="status-name">
-				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
-				<a href="/user/{{.Account.ID}}">
-					<span class="status-uname"> @{{.Account.Acct}} </span>
-				</a>
-				<div class="more-container">
-					<div class="remote-link">
-						{{if .IDNumbers}}#{{index .IDNumbers .ID}}{{end}} {{.Visibility}}
-					</div>
-					<div class="more-content">
-						<a class="more-link" href="{{.URL}}" target="_blank">
-							fonto
-						</a>
-						<a class="more-link" href="/quickreply/{{.ID}}#status-{{.ID}}">
-							rapide respondi
-						</a>
-						{{if .Muted}}
-						<form action="/unmuteconv/{{.ID}}" method="post" target="_self">
-							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-							<input type="submit" value="malsilentigi" class="btn-link more-link">
-						</form>
-						{{else}}
-						<form action="/muteconv/{{.ID}}" method="post" target="_self">
-							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-							<input type="submit" value="silentigi" class="btn-link more-link">
-						</form>
-						{{end}}
-						{{if .Bookmarked}}
-						<form action="/unbookmark/{{.ID}}" method="post" target="_self">
-							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-							<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
-							<input type="submit" value="senlegosigni" class="btn-link more-link">
-						</form>
-						{{else}}
-						<form action="/bookmark/{{.ID}}" method="post" target="_self">
-							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-							<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
-							<input type="submit" value="legosigni" class="btn-link more-link">
-						</form>
-						{{end}}
-						{{if eq $.Ctx.UserID .Account.ID}}
-						<form action="/delete/{{.ID}}" method="post" target="_self">
-							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-							<input type="submit" value="forigi" class="btn-link more-link">
-						</form>
-						{{end}}
-					</div>
-				</div>
-			</div>
-			<div class="status-reply-container">
-				{{if .InReplyToID}}
-				<a class="status-reply-to-link" href="{{if not .ShowReplies}}/thread/{{.InReplyToID}}{{end}}#status-{{.InReplyToID}}"> 
-					 responde al {{if .IDNumbers}}#{{index .IDNumbers .InReplyToID}}{{end}} {{if .Pleroma.InReplyToAccountAcct}}@{{.Pleroma.InReplyToAccountAcct}}{{else if not .IDNumbers}}{{.InReplyToID}}{{end}}
-				</a>
-				{{if index .IDReplies .ID}} <span class="status-reply-info-divider"> - </span> {{end}}
-				{{end}}
-				{{if .ShowReplies}}
-				{{if index .IDReplies .ID}} <span class="status-reply-text"> respondoj: </span> {{end}}
-				{{range index .IDReplies .ID}}
-				<a class="status-reply-link" href="#status-{{.ID}}">#{{.Number}}</a>
-				{{end}}
-				{{end}}
-			</div>
-			{{if (or .Content .SpoilerText)}}
-			<div class="status-content">
-				{{if .SpoilerText}}{{EmojiFilter (HTML .SpoilerText) .Emojis | Raw}}<br/>{{end}}
-				{{StatusContentFilter .Content .Emojis .Mentions | Raw}}
-			</div>
-			{{end}}
-			{{if .MediaAttachments}}
-			<div class="status-media-container">
-				{{range .MediaAttachments}}
-
-				{{if eq .Type "image"}}
-				{{if $.Ctx.HideAttachments}}
-				<a href="{{.URL}}" target="_blank">
-					[image{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
-				</a>
-				{{else}}
-				<a class="img-link" href="{{.URL}}" target="_blank" title="{{.Description}}">
-					<img class="status-image" src="{{.PreviewURL}}" alt="status-image" height="240" />
-					{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
-					<img src="https://jam.xwx.moe/static/bildoj/konsterna.jpg" class="status-nsfw-overlay"/>
-					{{end}}
-				</a>
-				{{end}}
-
-				{{else if eq .Type "audio"}}
-				{{if $.Ctx.HideAttachments}}
-				<a href="{{.URL}}" target="_blank">
-					[audio{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
-				</a>
-				{{else}}
-				<audio class="status-audio" controls title="{{.Description}}">
-					<source src="{{.URL}}">
-					<a href="{{.URL}}" target="_blank"> [audio] </a>
-				</audio>
-				{{end}}
-
-				{{else if eq .Type "video"}}
-				{{if $.Ctx.HideAttachments}}
-				<a href="{{.URL}}" target="_blank">
-					[video{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
-				</a>
-				{{else}}
-				<div class="status-video-container" title="{{.Description}}">
-					<video class="status-video" controls height="240">
-						<source src="{{.URL}}">
-						<a href="{{.URL}}" target="_blank"> [video] </a>
-					</video>
-					{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
-					<img src="https://jam.xwx.moe/static/bildoj/konsterna.jpg" class="status-nsfw-overlay"/>
-					{{end}}
-				</div>
-				{{end}}
-
-				{{else}}
-				<a href="{{.URL}}" target="_blank"> 
-					[attachment{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
-				</a>
-				{{end}}
-				{{end}}
-			</div>
-			{{end}}
-			{{if .Poll}}
-			<form class="poll-form" action="/vote/{{.Poll.ID}}" method="POST" target="_self">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="hidden" name="status_id" value="{{$s.ID}}">
-				{{range $i, $o := .Poll.Options}}
-				<div class="poll-option">
-					{{if (or $s.Poll.Expired $s.Poll.Voted)}}
-					<div> {{EmojiFilter (HTML $o.Title) $s.Emojis | Raw}} - {{$o.VotesCount}} votes </div>
-					{{else}}
-					<input type="{{if $s.Poll.Multiple}}checkbox{{else}}radio{{end}}" name="choices" 
-						id="poll-{{$s.ID}}-{{$i}}" value="{{$i}}">
-					<label for="poll-{{$s.ID}}-{{$i}}"> 
-						{{EmojiFilter (HTML $o.Title) $s.Emojis | Raw}}
-					</label>
-					{{end}}
-				</div>
-				{{end}}
-				{{if not (or .Poll.Expired .Poll.Voted)}}
-				<button type="submit"> Voĉdoni </button>
-				{{end}}
-				<div class="poll-info">
-					<span>{{.Poll.VotesCount}} voĉdonoj</span>
-					{{if .Poll.Expired}}
-					<span> - enketo finiĝis </span>
-					{{else if .Poll.ExpiresAt}}
-					<span>
-						- enketo finiĝos je
-						<time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}"> 
-							{{TimeUntil .Poll.ExpiresAt}} 
-						</time> 
-					</span>
-					{{end}}
-				</div>
-			</form>
-			{{end}}
-			<div class="status-action-container"> 
-				<div class="status-action">
-					<a href="/thread/{{.ID}}?reply=true#status-{{.ID}}"> 
-						respondi
-					</a>
-					<a class="status-reply-count" href="/thread/{{.ID}}#status-{{.ID}}" {{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}>
-						{{if and (not $.Ctx.AntiDopamineMode) .RepliesCount}}
-							({{DisplayInteractionCount .RepliesCount}})
-						{{end}}
-					</a>
-				</div>
-				<div class="status-action">
-					{{$rt := "ripeti"}} {{if .Reblogged}} {{$rt = "malripeti"}} {{end}}
-					{{$rtaction := "retweet"}} {{if .Reblogged}} {{$rtaction = "unretweet"}} {{end}}
-					<form class="status-retweet" data-action="{{$rtaction}}" action="/{{$rtaction}}/{{.ID}}" method="post" target="_self">
-						<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-						<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-						<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
-						<input type="submit" value="{{$rt}}" class="btn-link" 
-							{{if or (eq .Visibility "private") (eq .Visibility "direct")}}title="ĉi tiu afiŝo ne povas ripetiĝi" disabled{{end}}>
-						<a class="status-retweet-count" href="/retweetedby/{{.ID}}" title="klaki por montri la liston"> 
-							{{if and (not $.Ctx.AntiDopamineMode) .ReblogsCount}}
-								({{DisplayInteractionCount .ReblogsCount}})
-							{{end}}
-						</a>
-					</form>
-				</div>
-				<div class="status-action">
-					{{$like := "ŝati"}} {{if .Favourited}} {{$like = "senŝati"}} {{end}}
-					{{$likeaction := "like"}} {{if .Favourited}} {{$likeaction = "unlike"}} {{end}}
-					<form class="status-like" data-action="{{$likeaction}}" action="/{{$likeaction}}/{{.ID}}" method="post" target="_self">
-						<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-						<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-						<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
-						<input type="submit" value="{{$like}}" class="btn-link">
-						<a class="status-like-count" href="/likedby/{{.ID}}" title="klaki por montri la liston"> 
-							{{if and (not $.Ctx.AntiDopamineMode) .FavouritesCount}}
-								({{DisplayInteractionCount .FavouritesCount}})
-							{{end}}
-						</a>
-					</form>
-				</div>
-				<div class="status-action status-action-last">
-					<a class="status-time" href="{{if not .ShowReplies}}/thread/{{.ID}}{{end}}#status-{{.ID}}"
-						{{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}> 
-						<time datetime="{{FormatTimeRFC3339 .CreatedAt.Time}}" title="{{FormatTimeRFC822 .CreatedAt.Time}}">
-							{{TimeSince .CreatedAt.Time}}
-						</time> 
-					</a>
-				</div>
-			</div>
-		</div>
-	</div>
-	{{end}}
-	{{end}}
-	{{end}}
-</div>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/thread.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/thread.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/thread.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/thread.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,18 +0,0 @@
-{{with $s := .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title-container">
-	<span class="page-title"> Interparolo </span>
-	<a class="page-refresh" href="{{$.Ctx.Referrer}}" accesskey="T" title="Reenlegi (T)">reenlegi</a>
-</div>
-
-{{range .Statuses}}
-
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{if $s.PostContext.ReplyContext}}{{if eq .ID $s.PostContext.ReplyContext.InReplyToID}}
-{{template "postform.tmpl" (WithContext $s.PostContext $.Ctx)}}
-{{end}}{{end}}
-
-{{end}}
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/timeline.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/timeline.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/timeline.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/timeline.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title-container">
-	<span class="page-title"> {{.Title}}  </span>
-	<a class="page-refresh" href="{{$.Ctx.Referrer}}" accesskey="T" title="Reenlegi (T)">reenlegi</a>
-</div>
-
-{{if eq .Type "remote"}}
-<form class="search-form" action="/timeline/remote" method="GET">
-	<span class="post-form-field">
-		<label for="instance"> Noda retnomo </label>
-		<input id="instance" name="instance" value="{{.Instance}}">
-	</span>
-	<button type="submit"> Serĉi </button>
-</form>
-{{end}}
-
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{end}}
-
-<div class="pagination">
-	{{if .PrevLink}}
-		<a href="{{.PrevLink}}">[antaŭa]</a>
-	{{end}}
-	{{if .NextLink}}
-		<a href="{{.NextLink}}">[sekva]</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlistitem.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlistitem.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlistitem.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlistitem.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-{{with .Data}}
-<div class="user-list-item">
-	<div class="user-list-profile-img">
-		<a class="img-link" href="/user/{{.ID}}">
-			<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
-		</a>
-	</div>
-	<div class="user-list-name">
-		<div class="status-dname"> {{EmojiFilter (HTML .DisplayName) .Emojis | Raw}} </div>
-		<a class="img-link" href="/user/{{.ID}}">
-			<div class="status-uname"> @{{.Acct}} </div>
-		</a>
-	</div>
-</div>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlist.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlist.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlist.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/userlist.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-{{with .Data}}
-<div>
-	{{range .}}
-		{{template "userlistitem.tmpl" (WithContext . $.Ctx)}}
-	{{else}}
-	<div class="no-data-found">No data found</div>
-	{{end}}
-</div>
-{{else}}
-<div class="no-data-found">No data found</div>
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/usersearch.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/usersearch.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/usersearch.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/usersearch.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,26 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Search {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}}'s statuses </div>
-
-<form class="search-form" action="/usersearch/{{.User.ID}}" method="GET">
-	<span class="post-form-field">
-		<label for="query"> Query </label>
-		<input id="query" name="q" value="{{.Q}}">
-	</span>
-	<button type="submit"> Search </button>
-</form>
-
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-{{if .Q}}<div class="no-data-found">No data found</div>{{end}}
-{{end}}
-
-<div class="pagination">
-	{{if .NextLink}}
-		<a href="{{.NextLink}}">[next]</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/user.tmpl" "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/user.tmpl"
--- "old-jam-xwx-moe/bloat/instance/\305\235ablonoj/user.tmpl"	2024-11-22 17:15:55.445621679 +0000
+++ "new-jam-xwx-moe/bloat/instance/\305\235ablonoj/user.tmpl"	1970-01-01 00:00:00.000000000 +0000
@@ -1,195 +0,0 @@
-{{with .Data}}
-{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
-<div class="page-title"> Uzanto </div>
-
-<div class="user-info-container">
-<div>
-	<div class="user-profile-img-container">
-		<a class="img-link" href="{{.User.Avatar}}" target="_blank">
-			<img class="user-profile-img" src="{{.User.Avatar}}" alt="profile-avatar" height="96" />
-		</a>
-	</div>
-	<div class="user-profile-details-container">
-		<div>
-			<bdi class="status-dname"> {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}} </bdi>
-			<span class="status-uname"> @{{.User.Acct}} </span>
-			<a class="remote-link" href="{{.User.URL}}" target="_blank" title="remote profile">
-				source
-			</a>
-		</div>
-		{{if not .IsCurrent}}
-		<div>
-			<span> {{if .User.Pleroma.Relationship.FollowedBy}} follows you - {{end}} </span>  
-			{{if .User.Pleroma.Relationship.BlockedBy}} blocks you - {{end}}
-			{{if .User.Pleroma.Relationship.Following}} 
-			<form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="malaboni" class="btn-link">
-			</form>
-			{{else}}
-			<form class="d-inline" action="/follow/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="{{if .User.Pleroma.Relationship.Requested}}resend request{{else}}aboni{{end}}" class="btn-link">
-			</form>
-			{{end}}
-			{{if .User.Pleroma.Relationship.Requested}}
-			-
-			<form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="nuligi peton" class="btn-link">
-			</form>
-			{{end}}
-			-
-			{{if .User.Pleroma.Relationship.Subscribing}}
-			<form class="d-inline" action="/unsubscribe/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="nuligi duonabonon" class="btn-link">
-			</form>
-			{{else}}
-			<form class="d-inline" action="/subscribe/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="duonaboni" class="btn-link">
-			</form>
-			{{end}}
-		</div>
-		<div>
-			{{if .User.Pleroma.Relationship.Blocking}}
-			<form class="d-inline" action="/unblock/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="malbloki" class="btn-link">
-			</form>
-			{{else}}
-			<form class="d-inline" action="/block/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="bloki" class="btn-link">
-			</form>
-			{{end}}
-			-
-			{{if .User.Pleroma.Relationship.Muting}}
-			<form class="d-inline" action="/unmute/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="malsilentigi" class="btn-link">
-			</form>
-			{{else}}
-			<a href="/mute/{{.User.ID}}"> silentigi </a>
-			{{end}}
-			{{if .User.Pleroma.Relationship.Following}} 
-			-
-			{{if .User.Pleroma.Relationship.ShowingReblogs}}
-			<form class="d-inline" action="/follow/{{.User.ID}}?reblogs=false" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="kaŝi ripetojn" class="btn-link">
-			</form>
-			{{else}}
-			<form class="d-inline" action="/follow/{{.User.ID}}" method="post">
-				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
-				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
-				<input type="submit" value="montri ripetojn" class="btn-link">
-			</form>
-			{{end}}
-			{{end}}
-		</div>
-		{{end}}
-		<div>
-			<a href="/user/{{.User.ID}}"> statuses ({{.User.StatusesCount}}) </a> - 
-			<a href="/user/{{.User.ID}}/following"> abonatoj ({{.User.FollowingCount}}) </a> - 
-			<a href="/user/{{.User.ID}}/followers"> abonantoj ({{.User.FollowersCount}}) </a> - 
-			<a href="/user/{{.User.ID}}/media"> dosieroj </a>
-		</div>
-		{{if .IsCurrent}}
-		<div>
-			<a href="/user/{{.User.ID}}/bookmarks"> legosignoj </a>
-			- <a href="/user/{{.User.ID}}/likes"> ŝatataj </a>
-			- <a href="/user/{{.User.ID}}/mutes"> silentigitaj </a>
-			- <a href="/user/{{.User.ID}}/blocks"> blokitaj </a>
-			{{if .User.Locked}}- <a href="/user/{{.User.ID}}/requests"> petoj </a>{{end}}
-		</div>
-		{{end}}
-		<div>
-			<a href="/usersearch/{{.User.ID}}"> serĉi afiŝojn </a>
-			{{if .IsCurrent}} - <a href="/filters"> filtriloj </a> {{end}}
-		</div>
-	</div>
-	<div class="user-profile-decription">
-	{{EmojiFilter .User.Note .User.Emojis | Raw}}
-	</div>
-	{{if .User.Fields}}
-	<div class="user-fields">
-		{{range .User.Fields}}
-		<div>{{EmojiFilter .Name $.Data.User.Emojis | Raw}} - {{EmojiFilter .Value $.Data.User.Emojis | Raw}}</div>
-		{{end}}
-	</div>
-	{{end}}
-</div>
-</div>
-
-{{if eq .Type ""}}
-<div class="page-title"> Afiŝoj </div>
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-{{else if eq .Type "following"}}
-<div class="page-title"> Abonataj </div>
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{else if eq .Type "followers"}}
-<div class="page-title"> Abonantoj </div>
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{else if eq .Type "media"}}
-<div class="page-title"> Afiŝoj kun dosieroj </div>
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-{{else if eq .Type "bookmarks"}}
-<div class="page-title"> Legosignoj </div>
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-{{else if eq .Type "likes"}}
-<div class="page-title"> Ŝatataj </div>
-{{range .Statuses}}
-{{template "status.tmpl" (WithContext . $.Ctx)}}
-{{else}}
-<div class="no-data-found">Neniu datumo trovita</div>
-{{end}}
-
-{{else if eq .Type "mutes"}}
-<div class="page-title"> Silentigitaj </div>
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{else if eq .Type "blocks"}}
-<div class="page-title"> Blocks </div>
-{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
-
-{{else if eq .Type "requests"}}
-<div class="page-title"> Abonpetoj </div>
-{{template "requestlist.tmpl" (WithContext .Users $.Ctx)}}
-{{end}}
-
-<div class="pagination">
-	{{if .NextLink}}
-		<a href="{{.NextLink}}">[sekva]</a>
-	{{end}}
-</div>
-
-{{template "footer.tmpl"}}
-{{end}}
diff -rN -u old-jam-xwx-moe/bloat-fe/bloat.conf new-jam-xwx-moe/bloat-fe/bloat.conf
--- old-jam-xwx-moe/bloat-fe/bloat.conf	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/bloat-fe/bloat.conf	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,45 @@
+# Format:
+# - Lines starting with a '#' are ignored
+# - Key and Value are separated by a single '='
+# - Leading and trailing white spaces in Key and Value are ignored
+# - Quoting and multi-line values are not supported
+
+# Address to listen to. Value can be of "HOSTNAME:PORT" or "IP:PORT" form. In
+# case of empty HOSTNAME or IP, "0.0.0.0:PORT" is used.
+# Example: ":8080", "bloat.mydomain.com"
+listen_address=127.0.0.1:8090
+
+# Full URL of the website. Users will be redirected to this URL after
+# authentication.
+# Example: "http://localhost:8080", "https://bloat.mydomain.com"
+client_website=https://jam.xwx.moe:1337
+
+# Name of the client.
+client_name=Mancardo Jamada
+
+# Mastadon scopes used by the client.
+# See https://docs.joinmastodon.org/api/oauth-scopes/
+client_scope=read write follow
+
+# Path of directory containing template files.
+templates_path=instance/ŝablonoj
+
+# Path of directory containing static files (CSS and JS).
+static_directory=instance/ktp
+
+# Supported post formats. Value is a list of key:value pair separated by a ','.
+# Empty value will disable the format selection in frontend.
+post_formats=PlainText:text/plain,HTML:text/html,Markdown:text/markdown,BBCode:text/bbcode
+
+# Log file. Will log to stdout if value is empty.
+# log_file=log
+
+# In single instance mode, bloat will not ask for instance domain name and
+# user will be directly redirected to login form. User login from other
+# instances is not allowed in this mode.
+# Empty value disables single instance mode.
+single_instance=jam.xwx.moe
+
+# Path to custom CSS. Value can be a file path relative to the static directory.
+# or a URL starting with either "http://" or "https://".
+# custom_css=custom.css
Binary files old-jam-xwx-moe/bloat-fe/instance/ktp/favicon.png and new-jam-xwx-moe/bloat-fe/instance/ktp/favicon.png differ
diff -rN -u old-jam-xwx-moe/bloat-fe/instance/ktp/fluoride.js new-jam-xwx-moe/bloat-fe/instance/ktp/fluoride.js
--- old-jam-xwx-moe/bloat-fe/instance/ktp/fluoride.js	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/bloat-fe/instance/ktp/fluoride.js	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,332 @@
+// @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0
+
+var reverseActions = {
+	"like": "senŝati",
+	"unlike": "ŝati",
+	"retweet": "malripeti",
+	"unretweet": "ripeti"
+};
+
+var csrfToken = "";
+var antiDopamineMode = false;
+
+function checkCSRFToken() {
+	var tag = document.querySelector("meta[name='csrf_token']");
+	if (tag)
+		csrfToken = tag.getAttribute("content");
+}
+
+function checkAntiDopamineMode() {
+	var tag = document.querySelector("meta[name='antidopamine_mode']");
+	if (tag)
+		antiDopamineMode = tag.getAttribute("content") === "true";
+}
+
+function http(method, url, body, type, success, error) {
+	var req = new XMLHttpRequest();
+	req.onload = function() {
+		if (this.status === 200 && typeof success === "function") {
+			success(this.responseText, this.responseType);
+		} else if (typeof error === "function") {
+			error(this.responseText);
+		}
+	};
+	req.onerror = function() {
+		if (typeof error === "function") {
+			error(this.responseText);
+		}
+	};
+	req.open(method, url);
+	req.setRequestHeader("Content-Type", type);
+	req.send(body);
+}
+
+function updateActionForm(id, f, action) {
+	f.querySelector("[type='submit']").value = action;
+	f.action = "/" + action + "/" + id;
+	f.dataset.action = action;
+}
+
+function handleLikeForm(id, f) {
+	f.onsubmit = function(event) {
+		event.preventDefault();
+
+		var action = f.dataset.action;
+		var forms = document.
+			querySelectorAll(".status-"+id+" .status-like");
+		for (var i = 0; i < forms.length; i++) {
+			updateActionForm(id, forms[i], reverseActions[action]);
+		}
+
+		var body = "csrf_token=" + encodeURIComponent(csrfToken);
+		var contentType = "application/x-www-form-urlencoded";
+		http("POST", "/fluoride/" + action + "/" + id, 
+			body, contentType, function(res, type) {
+
+			if (antiDopamineMode)
+				return;
+			var data = JSON.parse(res);
+			var count = data.data;
+			if (count === 0)
+				count = "";
+			var counts = document.
+				querySelectorAll(".status-"+id+" .status-like-count");
+			for (var i = 0; i < counts.length; i++) {
+				if (count > 0) {
+					counts[i].innerHTML = "(" + count + ")";
+				} else {
+					counts[i].innerHTML = "";
+				}
+			}
+		}, function(err) {
+			for (var i = 0; i < forms.length; i++) {
+				updateActionForm(id, forms[i], action);
+			}
+		});
+	}
+}
+
+function handleRetweetForm(id, f) {
+	f.onsubmit = function(event) {
+		event.preventDefault();
+
+		var action = f.dataset.action;
+		var forms = document.
+			querySelectorAll(".status-"+id+" .status-retweet");
+		for (var i = 0; i < forms.length; i++) {
+			updateActionForm(id, forms[i], reverseActions[action]);
+		}
+
+		var body = "csrf_token=" + encodeURIComponent(csrfToken);
+		var contentType = "application/x-www-form-urlencoded";
+		http("POST", "/fluoride/" + action + "/" + id, 
+			body, contentType, function(res, type) {
+
+			if (antiDopamineMode)
+				return;
+			var data = JSON.parse(res);
+			var count = data.data;
+			if (count === 0)
+				count = "";
+			var counts = document.
+				querySelectorAll(".status-"+id+" .status-retweet-count");
+			for (var i = 0; i < counts.length; i++) {
+				if (count > 0) {
+					counts[i].innerHTML = "(" + count + ")";
+				} else {
+					counts[i].innerHTML = "";
+				}
+			}
+		}, function(err) {
+			for (var i = 0; i < forms.length; i++) {
+				updateActionForm(id, forms[i], action);
+			}
+		});
+	}
+}
+
+function isInView(el) {
+	var ract = el.getBoundingClientRect();
+	if (ract.top > 0 && ract.bottom < window.innerHeight)
+		return true;
+	return false;
+}
+
+function handleReplyToLink(a) {
+	if (!a)
+		return;
+	var id = a.getAttribute("href");
+	if (!id || id[0] != "#")
+		return;
+	a.onmouseenter = function(event) {
+		var id = event.target.getAttribute("href");
+		var status = document.querySelector(id);
+		if (!status)
+			return;
+		if (isInView(status)) {
+			status.classList.add("highlight");
+		} else {
+			var copy = status.cloneNode(true);
+			copy.id = "reply-to-popup";
+			var ract = event.target.getBoundingClientRect();
+			copy.style["max-width"] = (window.innerWidth - ract.left - 32) + "px";
+			if (ract.top > window.innerHeight / 2) {
+				copy.style.bottom = (window.innerHeight - 
+					window.scrollY - ract.top) + "px";
+			}
+			event.target.parentElement.appendChild(copy);
+		}
+	}
+	a.onmouseleave = function(event) {
+		var popup = document.getElementById("reply-to-popup");
+		if (popup) {
+			event.target.parentElement.removeChild(popup);    
+		} else {
+			var id = event.target.getAttribute("href");
+			document.querySelector(id)
+				.classList.remove("highlight");
+		}
+	}
+}
+
+function handleReplyLink(a) {
+	a.onmouseenter = function(event) {
+		var id = event.target.getAttribute("href");
+		var status = document.querySelector(id);
+		if (!status)
+			return;
+		if (isInView(status)) {
+			status.classList.add("highlight");
+		} else {
+			var copy = status.cloneNode(true);
+			copy.id = "reply-popup";
+			var ract = event.target.getBoundingClientRect();
+			copy.style["max-width"] = (window.innerWidth - 98) + "px";
+			if (ract.left > window.innerWidth / 2) {
+				copy.style.right = (window.innerWidth -
+					ract.right - 12) + "px";
+			}
+			event.target.parentElement.appendChild(copy);
+		}
+	}
+	a.onmouseleave = function(event) {
+		var popup = document.getElementById("reply-popup");
+		if (popup) {
+			event.target.parentElement.removeChild(popup);
+		} else {
+			var id = event.target.getAttribute("href");
+			document.querySelector(id).classList.remove("highlight");
+		}
+	}
+}
+
+function handleStatusLink(a) {
+	if (a.classList.contains("mention"))
+		a.removeAttribute("target");
+	else
+		a.target = "_blank";
+}
+
+function setPos(el, cx, cy, mw, mh) {
+	var h = el.clientHeight;
+	var w = el.clientWidth;
+	var left, top;
+	if (cx < mw/2) {
+		if (w + cx + 20 < mw) {
+			left = cx + 20; 
+		} else {
+			left = (mw - w);
+		}
+	} else {
+		if (cx - w - 20 > 0) {
+			left = cx - w - 20; 
+		} else {
+			left = 0;
+		}
+	}
+	top = (cy - (h/2));
+	if (top < 0) {
+		top = 0;
+	} else if (top + h > mh) {
+		top = (mh - h);
+	} 
+	el.style.left = left + "px";
+	el.style.top = top + "px";
+}
+
+var imgPrev = null;
+var imgX = 0;
+var imgY = 0;
+function handleImgPreview(a) {
+	a.onmouseenter = function(e) {
+		var mw = document.documentElement.clientWidth;
+		var mh = document.documentElement.clientHeight - 24;
+		imgX = e.clientX;
+		imgY = e.clientY;
+		var img = document.createElement("img");
+		img.id = "img-preview";
+		img.src = e.target.getAttribute("href");
+		img.style["max-width"] = mw + "px";
+		img.style["max-height"] = mh + "px";
+		imgPrev = img;
+		img.onload = function(e2) {
+			setPos(imgPrev, imgX, imgY, mw, mh);
+		}
+		document.body.appendChild(img);
+	}
+	a.onmouseleave = function(e) {
+		var img = document.getElementById("img-preview");
+		if (img)
+			document.body.removeChild(img);
+		imgPrev = null;
+	}
+	a.onmousemove = function(e) {
+		if (!imgPrev)
+			return;
+		var mw = document.documentElement.clientWidth;
+		var mh = document.documentElement.clientHeight - 24;
+		imgX = e.clientX;
+		imgY = e.clientY;
+		setPos(imgPrev, imgX, imgY, mw, mh);
+	}
+}
+
+function onPaste(e) {
+	if (!e.clipboardData.files)
+		return;
+	var fp = document.querySelector("#post-file-picker")
+	var dt = new DataTransfer();
+	for (var i = 0; i < fp.files.length; i++) {
+		dt.items.add(fp.files[i]);
+	}
+	for (var i = 0; i < e.clipboardData.files.length; i++) {
+		dt.items.add(e.clipboardData.files[i]);
+	}
+	fp.files = dt.files;
+}
+
+document.addEventListener("DOMContentLoaded", function() { 
+	checkCSRFToken();
+	checkAntiDopamineMode();
+
+	var statuses = document.querySelectorAll(".status-container");
+	for (var i = 0; i < statuses.length; i++) {
+		var s = statuses[i];
+		var id = s.dataset.id;
+
+		var likeForm = s.querySelector(".status-like");
+		handleLikeForm(id, likeForm);
+
+		var retweetForm = s.querySelector(".status-retweet");
+		handleRetweetForm(id, retweetForm);
+
+		var replyToLink = s.querySelector(".status-reply-to-link");
+		handleReplyToLink(replyToLink);
+
+		var replyLinks = s.querySelectorAll(".status-reply-link");
+		for (var j = 0; j < replyLinks.length; j++) {
+			handleReplyLink(replyLinks[j]);
+		}
+
+		var links = s.querySelectorAll(".status-content a");
+		for (var j = 0; j < links.length; j++) {
+			handleStatusLink(links[j]);
+		}
+	}
+
+	var links = document.querySelectorAll(".user-profile-decription a, .user-fields a");
+	for (var j = 0; j < links.length; j++) {
+		links[j].target = "_blank";
+	}
+
+	var links = document.querySelectorAll(".status-media-container .img-link");
+	for (var j = 0; j < links.length; j++) {
+		handleImgPreview(links[j]);
+	}
+
+	var pf = document.querySelector(".post-form")
+	if (pf)
+		pf.addEventListener("paste", onPaste);
+});
+
+// @license-end
diff -rN -u old-jam-xwx-moe/bloat-fe/instance/ktp/style.css new-jam-xwx-moe/bloat-fe/instance/ktp/style.css
--- old-jam-xwx-moe/bloat-fe/instance/ktp/style.css	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/bloat-fe/instance/ktp/style.css	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,648 @@
+body {
+	background-color: #f7f7f7;
+}
+
+.status-container-container {
+	margin: 0 -4px 12px -4px;
+	padding: 4px;
+	border-left: 4px solid transparent;
+}
+
+.status-container-container:target {
+	background-color: #faf0bb;
+}
+
+.status-container-container.highlight {
+	background-color: #faf0bb;
+}
+
+.status-container {
+	display: flex;
+}
+
+.status-content {
+	margin: 4px 0;
+	max-height: 600px;
+	overflow: auto;
+	overflow-wrap: break-word;
+}
+
+.status-name {
+	overflow-wrap: break-word;
+}
+
+.status-content p {
+	margin: 0px;
+}
+
+.status-content img,
+.status-image,
+.status-video {
+	height: auto;
+	width: auto;
+	max-height: 240px;
+	max-width: 280px;
+	vertical-align: bottom;
+	object-fit: contain;
+}
+
+.status-media-container {
+	margin: 5px 0 -5px 0;
+	overflow: auto;
+}
+
+.status-media-container>a {
+	margin-bottom: 5px;
+	display: inline-block;
+}
+
+.status-profile-img-container {
+	margin-right: 8px;
+	display: inline-block;
+	vertical-align: top;
+}
+
+.status-profile-img {
+	height: 48px;
+	width: 48px;
+	min-height: 48px;
+	min-width: 48px;
+	max-height: 48px;
+	max-width: 48px;
+	vertical-align: top;
+	object-fit: contain;
+	margin-top: 2px;
+}
+
+.status {
+	display: inline-block;
+	vertical-align: top;
+	flex: 1;
+	min-width: 0;
+}
+
+.status-dname {
+	font-weight: 800;
+}
+
+.status-uname {
+	font-style: italic;
+	font-size: 10pt;
+}
+
+.status-action-container {
+	margin-top: 4px;
+}
+
+.status-action {
+	display: inline-block;
+	margin-right: 16px;
+}
+
+.status-action-last {
+	margin-right: 4px;
+}
+
+.status-action form {
+	display: inline-block;
+}
+
+.status-action a {
+	display: inline-block;
+}
+
+.status-action * {
+	vertical-align: middle;
+}
+
+.status-action a.status-time {
+	width: auto;
+}
+
+.page-title {
+	font-size: 18pt;
+	margin: 8px 0;
+	background-color: #e2c2f2;
+}
+
+.post-form {
+	margin: 4px 0;
+}
+
+.post-form>div {
+	margin-bottom: 4px;
+}
+
+.signin-form {
+	margin: 8px 0;
+}
+
+.signin-form input {
+	margin: 4px 0;
+}
+
+.retweet-info {
+	margin: 0 0 4px 24px;
+	overflow-wrap: break-word;
+}
+
+.retweet-info .status-profile-img {
+	height: 24px;
+	width: 24px;
+	min-height: 24px;
+	min-width: 24px;
+	max-height: 24px;
+	max-width: 24px;
+	vertical-align: middle;
+}
+
+.retweet-info .status-dname {
+	margin-left: 4px;
+}
+
+textarea {
+	padding: 4px;
+	font-size: 11pt;
+	font-family: initial;
+}
+
+.post-content {
+	box-sizing: border-box;
+	width: 100%;
+}
+
+#css {
+	box-sizing: border-box;
+	max-width: 100%;
+}
+
+.pagination {
+	margin: 4px 4px 12px 4px;
+}
+
+.pagination a {
+	margin: 0 8px;
+	font-size: 13pt;
+}
+
+.notification-container {
+	margin: 0 -4px 12px -4px;
+	padding: 4px;
+	border-left: 4px solid transparent;
+}
+
+.notification-container.unread {
+	border-color: #777777;
+}
+
+.notification-container .status-container {
+	opacity: 0.6;
+}
+
+.notification-container.mention .status-container {
+	opacity: unset;
+}
+
+.notification-info-text span {
+	vertical-align: middle;
+}
+
+.notification-follow-container {
+	overflow: auto;
+	display: flex;
+	align-items: center;
+}
+
+.notification-follow {
+	overflow: auto;
+}
+
+.notification-time {
+	margin-left: 8px;
+}
+
+.status-reply-to-link {
+	font-size: 10pt
+}
+
+.status-reply-container {
+	overflow-wrap: break-word;
+}
+
+.status-reply-container .fa {
+	font-size: 10pt;
+	vertical-align: sub;
+	margin-right: -2px;
+}
+
+.status-reply-text {
+	font-size: 10pt;
+}
+
+.status-reply-link {
+	font-size: 10pt;
+}
+
+.status-reply-info-divider {
+	margin: 0 4px;
+}
+
+.post-content-container {
+	padding-right: 8px;
+}
+
+.error-text {
+	margin: 8px 0;
+}
+
+.post-attachment-div {
+	margin: 2px 0;
+}
+
+.user-profile-img-container {
+	display: inline-block;
+	margin: 0 4px 4px 0;
+}
+
+.user-profile-details-container {
+	display: inline-block;
+	vertical-align: top;
+}
+
+.user-profile-details-container>div {
+	margin-bottom: 4px;
+}
+
+.user-profile-img {
+	height: 96px;
+	width: 96px;
+	vertical-align: top;
+	object-fit: contain;
+	margin-top: 2px;
+}
+
+.user-profile-decription,
+.user-fields {
+	overflow-wrap: break-word;
+	margin: 8px 0;
+}
+
+.user-profile-decription p {
+	margin: 0;
+}
+
+.user-profile-decription img {
+	height: auto;
+	width: auto;
+	max-height: 240px;
+	max-width: 280px;
+	object-fit: contain;
+}
+
+.d-inline {
+	display: inline;
+}
+
+.p-0 {
+	padding: 0;
+}
+
+.btn-link {
+	border: none;
+	outline: none;
+	background: none;
+	cursor: pointer;
+	padding: 0;
+	font-family: inherit;
+	font-size: inherit;
+}
+
+a, .btn-link {
+	color: #806c0d;
+	text-decoration: none;
+}
+
+a:hover,
+.btn-link:hover {
+	color: #806c0d;
+	text-decoration: underline;
+}
+
+.status-visibility {
+	margin-left: 4px;
+	display: inline-block;
+	color: #222222;
+	font-size: 8pt;
+}
+
+.remote-link {
+	margin-left: 4px;
+	font-size: 8pt;
+}
+
+.img-link {
+	display: inline-block;
+	position: relative;
+}
+
+.status-media-container .img-link {
+	width: 384px;
+}
+
+.status-profile-img-container .img-link {
+	width: 48px;
+}
+
+.status-nsfw-overlay {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	background-color: #a7bbb9;
+	color: #a7bbb9;
+	height: 240px;
+	max-height: 100%;
+}
+
+.img-link:hover .status-nsfw-overlay {
+	display: none;
+}
+
+.status-video-container {
+	display: inline-block;
+	position: relative;
+	margin-bottom: 5px;
+}
+
+.status-video-container:hover .status-nsfw-overlay {
+	display: none;
+}
+
+.emoji-item-container {
+	width: 220px;
+	display: inline-block;
+	margin: 4px 0;
+	overflow: hidden;
+}
+
+.emoji-item {
+	display: flex;
+	align-items: center;
+}
+
+img.emoji {
+	height: auto;
+	width: auto;
+	max-height: 32px;
+	max-width: 32px;
+	min-height: 32px;
+	min-width: 32px;
+	vertical-align: middle;
+	object-fit: contain;
+	margin: 0;
+}
+
+.status-dname img.emoji {
+	height: 24px;
+	min-height: 24px;
+	min-width: 24px;
+}
+
+.emoji-shortcode {
+	margin-left: 4px;
+}
+
+.post-form-emoji-link {
+	margin-left: 4px;
+}
+
+.user-info-img {
+	height: 64px;
+	width: 64px;
+	vertical-align: middle;
+	object-fit: contain;
+	margin-top: 2px;
+}
+
+.user-info-img-container {
+	float: left;
+	margin-right: 8px;
+}
+
+.user-info-details-container {
+	overflow: auto;
+}
+
+.user-info-details-name,
+.user-info-details-nav {
+	margin-bottom: 4px;
+}
+
+.nav-link {
+	margin-right: 2px;
+}
+
+.user-list-item {
+	overflow: auto;
+	margin: 0 0 12px 0;
+	display: flex;
+	align-items: center;
+}
+
+.user-list-profile-img {
+	float: left;
+	margin: 0 8px 0 0;
+}
+
+.user-list-name {
+	overflow: auto;
+}
+
+.user-list-action {
+	margin: 0 12px;
+}
+
+#settings-form {
+	margin: 8px 0;
+}
+
+.settings-form-field {
+	margin: 4px 0;
+}
+
+#settings-form button[type=submit] {
+	margin-top: 8px;
+}
+
+#reply-popup {
+	position: absolute;
+	background-color: #d2d2d2;
+	border: 1px solid #aaaaaa;
+	padding: 4px 8px;
+	z-index: 3;
+	margin: 0;
+}
+
+#reply-to-popup {
+	position: absolute;
+	background-color: #d2d2d2;
+	border: 1px solid #aaaaaa;
+	padding: 4px 8px;
+	z-index: 3;
+	margin: 0;
+}
+
+.search-form {
+	margin: 12px 0;
+}
+
+.more-container {
+	position: relative;
+	display: inline-block;
+}
+
+.more-content {
+	display: none;
+	position: absolute;
+	background-color: #d2d2d2;
+	padding: 2px 4px;
+	border: 1px solid #aaaaaa;
+	z-index: 1;
+}
+
+.more-container:hover .more-content {
+	display: block;
+}
+
+.more-link {
+	font-size: 8pt;
+	display: block;
+	margin: 2px;
+}
+
+.poll-form {
+	margin-top: 5px;
+	overflow: auto;
+	overflow-wrap: break-word;
+}
+
+.poll-form button[type=submit] {
+	margin-top: 6px;
+}
+
+.poll-info {
+	margin-top: 6px;
+}
+
+.page-title-container {
+	margin: 8px 0;
+}
+
+.page-refresh {
+	margin-right: 8px;
+}
+
+.notification-text {
+	vertical-align: middle;
+}
+
+.notification-read {
+	display: inline-block;
+}
+
+.no-data-found {
+	margin: 12px 0;
+}
+
+.signout {
+	display: inline;
+}
+
+.signin-desc {
+	margin: 8px 0 16px 0;
+}
+
+.keyboard-shortcuts {
+	margin-top: 12px;
+}
+
+.keyboard-shortcuts td {
+	padding: 2px 4px;
+}
+
+kbd {
+	border-radius: 3px;
+	padding: 1px 4px;
+	border: 1px solid #444444;
+	background-color: #eeeeee;
+	font-size: 10pt;
+}
+
+.filters {
+	margin: 10px 0;
+}
+
+.filters td {
+	padding: 2px 4px;
+}
+
+#img-preview {
+	pointer-events: none;
+	z-index: 2;
+	position: fixed;
+}
+
+.quote {
+	color: #789922;
+}
+
+.dark {
+	background-color: #222222;
+	background-image: none;
+	color: #eaeaea;
+}
+
+.dark a {
+	color: #81a2be;
+}
+
+.dark textarea {
+	background-color: #333333;
+	border: 1px solid #444444;
+	color: #eaeaea;
+}
+
+.dark #reply-popup,
+.dark #reply-to-popup {
+	background-color: #222222;
+	border-color: #444444;
+}
+
+.dark .status-container-container.highlight {
+	background-color: #333333;
+}
+
+.dark .btn-link {
+	color: #81a2be;
+}
+
+.dark a:hover,
+.dark .btn-link:hover {
+	color: #497091;
+}
+
+.dark .status-visibility {
+	color: #eaeaea;
+}
+
+.dark .more-content {
+	background-color: #222222;
+	border-color: #444444;
+}
+
+.dark kbd {
+	background-color: #333333;
+	border-color: #444444;
+	color: #eaeaea;
+}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/about.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/about.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/about.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/about.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,109 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+
+<div class="page-title"> Pri </div>
+<div>
+	<p>
+		Retejkliento por <a href="https://pleroma.social" target="_blank">federujo</a>.
+	</p>
+	<p>
+		La fontkodo estas sub la permesilo 
+		<a href="https://creativecommons.org/publicdomain/zero/1.0/legalcode" target="_blank">CC0</a> 
+		kaj akireblas de 
+		<a href="https://git.freesoftwareextremist.com/bloat" target="_blank">git.freesoftwareextremist.com/bloat</a>.
+	</P>
+</div>
+
+<div class="page-title"> Ŝparklavoj </div>
+<div>
+	<table class="keyboard-shortcuts">
+		<tr>
+			<td> Uzantprofilo </td>
+			<td> <kbd>0</kbd> </td>
+		</tr>
+		<tr>
+			<td> Hejma historio </td>
+			<td> <kbd>1</kbd> </td>
+		</tr>
+		<tr>
+			<td> Rekta historio </td>
+			<td> <kbd>2</kbd> </td>
+		</tr>
+		<tr>
+			<td> Noda historio </td>
+			<td> <kbd>3</kbd> </td>
+		</tr>
+		<tr>
+			<td> Federa historio </td>
+			<td> <kbd>4</kbd> </td>
+		</tr>
+		<tr>
+			<td> Alinoda historio </td>
+			<td> <kbd>5</kbd> </td>
+		</tr>
+		<tr>
+			<td> Serĉi </td>
+			<td> <kbd>6</kbd> </td>
+		</tr>
+		<tr>
+			<td> Listoj </td>
+			<td> <kbd>7</kbd> </td>
+		</tr>
+		<tr>
+			<td> Agordoj </td>
+			<td> <kbd>8</kbd> </td>
+		</tr>
+		<tr>
+			<td> Pri </td>
+			<td> <kbd>9</kbd> </td>
+		</tr>
+		<tr>
+			<td> Bildosignoj </td>
+			<td> <kbd>L</kbd> </td>
+		</tr>
+		<tr>
+			<td> Redakti afiŝon </td>
+			<td> <kbd>E</kbd> </td>
+		</tr>
+		<tr>
+			<td> Afiŝoformo </td>
+			<td> <kbd>F</kbd> </td>
+		</tr>
+		<tr>
+			<td> Afiŝocelo </td>
+			<td> <kbd>S</kbd> </td>
+		</tr>
+		<tr>
+			<td> Marki kiel konsterna </td>
+			<td> <kbd>N</kbd> </td>
+		</tr>
+		<tr>
+			<td> Kunmeti dosieron al afiŝo </td>
+			<td> <kbd>A</kbd> </td>
+		</tr>
+		<tr>
+			<td> Afiŝi </td>
+			<td> <kbd>P</kbd> </td>
+		</tr>
+		<tr>
+			<td> Reenlegi sciigojn </td>
+			<td> <kbd>R</kbd> </td>
+		</tr>
+		<tr>
+			<td> Marki sciigojn kiel legitaj </td>
+			<td> <kbd>C</kbd> </td>
+		</tr>
+		<tr>
+			<td> Reenlegi historion/afiŝaron </td>
+			<td> <kbd>T</kbd> </td>
+		</tr>
+	</table>
+	<p>
+		Vi povas uzi ĉi tiujn ŝparklavojn per kunpremo kun la <a href="https://en.wikipedia.org/wiki/Access_key#Access_in_different_browsers" target="_blank">alternativa klavo</a> de via retfoliumilo, 
+		kiu plejofte estas <a>ALT</kbd> + <kbd>Shift</kbd>.
+	</p>
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
+
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/emoji.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/emoji.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/emoji.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/emoji.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,17 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Bildosignoj </div>
+
+<div class="emoji-list-container">
+	{{range .Emojis}}
+	<div class="emoji-item-container">
+		<div class="emoji-item">
+			<img class="emoji" src="{{.URL}}" alt="{{.ShortCode}}" height="32" loading="lazy" />
+			<span title=":{{.ShortCode}}:" class="emoji-shortcode">:{{.ShortCode}}:</span>
+		</div>
+	</div>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/error.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/error.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/error.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/error.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,17 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Eraro </div>
+
+<div class="error-text"> {{.Err}} </div>
+<div>
+	<a href="/timeline/home">hejmo</a>
+	{{if .Retry}}
+	<a href="{{$.Ctx.Referrer}}">reprovi</a>
+	{{end}}
+	{{if .SessionErr}}
+	<a href="/signin" target="_top">saluti</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/filters.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/filters.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/filters.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/filters.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,40 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Filtriloj </div>
+
+{{if .Filters}}
+<table class="filters">
+	{{range .Filters}}
+	<tr>
+		<td> {{.Phrase}}{{if not .WholeWord}}*{{end}} </td>
+		<td> 
+			<form action="/unfilter/{{.ID}}" method="POST">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<button type="submit"> Forigi </button>
+			</form>
+		</td>
+	</tr>
+	{{end}}
+</table>
+{{else}}
+	<div class="filters"> Neniu filtrilo agordita </div>
+{{end}}
+
+<div class="page-title"> Krei filtrilon </div>
+<form action="/filter" method="POST">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	<span class="settings-form-field">
+		<label for="phrase"> Vorto(j) </label>
+		<input id="phrase" name="phrase" required>
+	</span>
+	<span class="settings-form-field">
+		<input id="whole-word" name="whole_word" type="checkbox" value="true" checked>
+		<label for="whole-word"> Tutmonde </label>
+	</span>
+	<button type="submit"> Krei </button>
+</form>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/footer.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/footer.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/footer.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/footer.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,2 @@
+</body>
+</html>
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/header.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/header.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/header.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/header.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,33 @@
+{{with .Data}}
+<!DOCTYPE html>
+<html lang="eo">
+<head>
+	<meta charset='utf-8'>
+	<link rel="icon" type="image/png" href="/static/favicon.png">
+	<meta content='width=device-width, initial-scale=1' name='viewport'>
+	{{if .Target}}
+	<base href="" target="{{.Target}}">
+	{{end}}
+	{{if .CSRFToken}}
+	<meta name="csrf_token" content="{{.CSRFToken}}">
+	{{end}}
+	{{if $.Ctx.AntiDopamineMode}}
+	<meta name="antidopamine_mode" content="{{$.Ctx.AntiDopamineMode}}">
+	{{end}}
+	{{if .RefreshInterval}}
+	<meta http-equiv="refresh" content="{{.RefreshInterval}}">
+	{{end}}
+	<title> {{if gt .Count 0}}({{.Count}}){{end}} {{.Title}} </title>
+	<link rel="stylesheet" href="/static/style.css">
+	{{if .CustomCSS}}
+	<link rel="stylesheet" href="{{.CustomCSS}}">
+	{{end}}
+	{{if $.Ctx.FluorideMode}}
+	<script src="/static/fluoride.js"></script>
+	{{end}}
+	{{if $.Ctx.UserCSS}}
+	<style>{{RawCSS $.Ctx.UserCSS}}</style>
+	{{end}}
+</head>
+<body {{if $.Ctx.DarkMode}}class="dark"{{end}}>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/likedby.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/likedby.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/likedby.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/likedby.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,8 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Ŝatita de </div>
+
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/lists.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/lists.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/lists.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/lists.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,35 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Listoj </div>
+
+{{range .Lists}}
+<div>
+	<a href="/timeline/list?list={{.ID}}"> {{.Title}} historio </a> 
+	-
+	<form class="d-inline" action="/list/{{.ID}}" method="GET">
+		<button type="submit" class="btn-link"> redakti </button>
+	</form>
+	-
+	<form class="d-inline" action="/list/{{.ID}}/remove" method="POST">
+		<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+		<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+		<button type="submit" class="btn-link"> forigi </button>
+	</form>
+</div>
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+<div class="page-title"> Krei liston </div>
+<form action="/list" method="POST">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	<span class="settings-form-field">
+		<label for="title"> Nomo </label>
+		<input id="title" name="title" required>
+	</span>
+	<button type="submit"> Krei </button>
+</form>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/list.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/list.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/list.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/list.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,63 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Listo {{.List.Title}} </div>
+
+<form action="/list/{{.List.ID}}/rename" method="POST">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	<input id="title" name="title" value="{{.List.Title}}">
+	<button type="submit"> Renomi </button>
+</form>
+
+<div class="page-title"> Uzantoj </div>
+{{if .Accounts}}
+<table>
+{{range .Accounts}}
+	<tr>
+		<td class="p-0"> {{template "userlistitem.tmpl" (WithContext . $.Ctx)}} </td>
+		<td class="p-0"> 
+			<form class="user-list-action" action="/list/{{$.Data.List.ID}}/removeuser?uid={{.ID}}" method="POST">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<button type="submit"> Remove </button>
+			</form>
+		</td>
+	</tr>
+{{end}}
+</table>
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+<div class="page-title"> Aldoni uzanton </div>
+<form class="search-form" action="/list/{{.List.ID}}" method="GET">
+	<span class="post-form-field">
+		<label for="query"> Uzanta serĉmendo </label>
+		<input id="query" name="q" value="{{.Q}}">
+	</span>
+	<button type="submit"> Serĉi </button>
+</form>
+
+{{if .Q}}
+{{if .SearchAccounts}}
+<table>
+{{range .SearchAccounts}}
+	<tr>
+		<td> {{template "userlistitem.tmpl" (WithContext . $.Ctx)}} </td>
+		<td>
+			<form class="user-list-action" action="/list/{{$.Data.List.ID}}/adduser?uid={{.ID}}" method="POST">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<button type="submit"> Aldoni </button>
+			</form>
+		</td>
+	</tr>
+{{end}}
+</table>
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+{{end}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/mute.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/mute.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/mute.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/mute.tmpl"	2024-11-22 17:15:55.445621679 +0000
@@ -0,0 +1,29 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Silentigi {{.User.Acct}} </div>
+
+<form action="/mute/{{.User.ID}}" method="POST">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	<div class="settings-form-field">
+		<input id="notifications" name="notifications" type="checkbox" value="true" checked>
+		<label for="notifications"> Malatenti sciigojn </label>
+	</div>
+	<div class="settings-form-field">
+		<label for="duration"> Reatentu </label>
+		<select id="duration" name="duration">
+			<option value="0" selected>Disabled</option>
+			<option value="300">Post 5m</option>
+			<option value="1800">Post 30m</option>
+			<option value="3600">Post 1h</option>
+			<option value="21600">Post 6h</option>
+			<option value="86400">Post 1d</option>
+			<option value="259200">Post 3d</option>
+			<option value="604800">Post 7d</option>
+		</select>
+	</div>
+	<button type="submit"> Silentigi </button>
+</form>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/nav.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/nav.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/nav.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/nav.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,40 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="user-info">
+	<div class="user-info-img-container">
+		<a class="img-link" href="/timeline/home" title="Hejmo (1)">
+			<img class="user-info-img" src="{{.User.Avatar}}" alt="profile-avatar" height="64" />
+		</a>
+	</div>
+	<div class="user-info-details-container">
+		<div class="user-info-details-name">
+			<bdi class="status-dname"> {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}} </bdi>
+			<a class="nav-link" href="/user/{{.User.ID}}" accesskey="0" title="Uzantoprofilo (0)">
+				<span class="status-uname"> @{{.User.Acct}} </span>
+			</a>
+		</div>
+		<div class="user-info-details-nav">
+			<a class="nav-link" href="/timeline/home" accesskey="1" title="Hejma historio (1)">hejmo</a>
+			<a class="nav-link" href="/timeline/direct" accesskey="2" title="Rekta historio (2)">rekta</a>
+			<a class="nav-link" href="/timeline/local" accesskey="3" title="Noda historio (3)">noda</a>
+			<a class="nav-link" href="/timeline/twkn" accesskey="4" title="Federa historio (4)">federa</a>
+			<a class="nav-link" href="/timeline/remote" accesskey="5" title="Fora historio (5)">fora</a>
+			<a class="nav-link" href="/search" accesskey="6" title="Serĉi (6)">serĉi</a>
+		</div>
+		<div>
+			<a class="nav-link" href="/lists" accesskey="7" title="Listoj (7)">listoj</a>
+			<a class="nav-link" href="/settings" target="_top" accesskey="8" title="Agordoj (8)">agordoj</a>
+			<form class="signout" action="/signout" method="post" target="_top">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="signout" class="btn-link nav-link" title="Adiaŭi">
+			</form>
+			<a class="nav-link" href="/about" accesskey="9" title="Pri (9)">pri</a>
+		</div>
+	</div>
+</div>
+
+{{template "postform.tmpl" (WithContext .PostContext $.Ctx)}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/notification.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/notification.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/notification.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/notification.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,128 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title-container">
+	<span class="page-title">
+		Sciigoj
+		{{if and (not $.Ctx.AntiDopamineMode) (gt .UnreadCount 0)}}
+			({{.UnreadCount }})
+		{{end}}
+	</span>
+	<a class="page-refresh" href="/notifications" target="_self" accesskey="R" title="Reenlegi (R)">reenlegi</a>
+	{{if .ReadID}}
+	<form class="notification-read" action="/notifications/read?max_id={{.ReadID}}" method="post" target="_self">
+		<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+		<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+		<input type="submit" value="read" class="btn-link" accesskey="C" title="Marki kiel legitaj (C)">
+	</form>
+	{{end}}
+</div>
+
+{{range .Notifications}}
+<div class="notification-container {{.Type}} {{if .Pleroma}}{{if not .Pleroma.IsSeen}}unread{{end}}{{end}}">
+	{{if eq .Type "follow"}}
+	<div class="notification-follow-container">
+		<div class="status-profile-img-container">
+			<a class="img-link" href="/user/{{.Account.ID}}">
+				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
+			</a>
+		</div>
+		<div class="notification-follow">
+			<div class="notification-info-text">
+				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
+				<span class="notification-text"> abonis vin - 
+					<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
+				</span>
+			</div>
+			<div>
+				<a href="/user/{{.Account.ID}}"> <span class="status-uname"> @{{.Account.Acct}} </span> </a>
+			</div>
+		</div>
+	</div>
+
+	{{else if eq .Type "follow_request"}}
+	<div class="notification-follow-container">
+		<div class="status-profile-img-container">
+			<a class="img-link" href="/user/{{.Account.ID}}">
+				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="profile-avatar" height="48" />
+			</a>
+		</div>
+		<div class="notification-follow">
+			<div class="notification-info-text">
+				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
+				<span class="notification-text"> volas abonis vin - 
+					<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
+				</span>
+			</div>
+			<div>
+				<a href="/user/{{.Account.ID}}"> <span class="status-uname"> @{{.Account.Acct}} </span> </a>
+			</div>
+			<form class="d-inline" action="/accept/{{.Account.ID}}" method="post" target="_self">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="accept" class="btn-link">
+			</form>
+			-
+			<form class="d-inline" action="/reject/{{.Account.ID}}" method="post" target="_self">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="reject" class="btn-link">
+			</form>
+		</div>
+	</div>
+
+	{{else if eq .Type "mention"}}
+	{{template "status" (WithContext .Status $.Ctx)}}
+
+	{{else if eq .Type "reblog"}}
+	<div class="retweet-info">
+		<a class="img-link" href="/user/{{.Account.ID}}">
+			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
+		</a>
+		<a href="/user/{{.Account.ID}}">
+			<span class="status-uname"> @{{.Account.Acct}} </span>
+		</a>
+		<span class="notification-text"> ripetis vian afiŝon - 
+			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
+		</span>
+	</div>
+	{{template "status" (WithContext .Status $.Ctx)}}
+
+	{{else if eq .Type "favourite"}}
+	<div class="retweet-info">
+		<a class="img-link" href="/user/{{.Account.ID}}">
+			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
+		</a>
+		<a href="/user/{{.Account.ID}}">
+			<span class="status-uname"> @{{.Account.Acct}} </span>
+		</a>
+		<span class="notification-text"> ŝatis vian afiŝon - 
+			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
+		</span>
+	</div>
+	{{template "status" (WithContext .Status $.Ctx)}}
+
+	{{else}}
+	<div class="retweet-info">
+		<a class="img-link" href="/user/{{.Account.ID}}">
+			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
+		</a>
+		<a href="/user/{{.Account.ID}}">
+			<span class="status-uname"> @{{.Account.Acct}} </span>
+		</a>
+		<span class="notification-text"> {{.Type}} - 
+			<time datetime="{{FormatTimeRFC3339 .CreatedAt}}" title="{{FormatTimeRFC822 .CreatedAt}}">{{TimeSince .CreatedAt}}</time> 
+		</span>
+	</div>
+	{{if .Status}}{{template "status" (WithContext .Status $.Ctx)}}{{end}}
+	{{end}}
+</div>
+{{end}}
+
+<div class="pagination">
+	{{if .NextLink}}
+		<a href="{{.NextLink}}" target="_self">[sekva]</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/postform.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/postform.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/postform.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/postform.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,51 @@
+{{with .Data}}
+<form class="post-form" action="/post" method="POST" enctype="multipart/form-data" target="_self">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	{{if .ReplyContext}}
+	<input type="hidden" name="reply_to_id" value="{{.ReplyContext.InReplyToID}}" />
+	<input type="hidden" name="quickreply" value="{{.ReplyContext.QuickReply}}" />
+	<label for="post-content" class="post-form-title"> Respondi al @{{.ReplyContext.InReplyToName}} </label>
+	{{else}}
+	<label for="post-content" class="post-form-title"> Nova afiŝo </label>
+	{{end}}
+	<a class="post-form-emoji-link" href="/emojis" target="_blank" title="Bildosignoj (L)" accesskey="L">
+		bildosignoj
+	</a>
+	<div class="post-form-content-container">
+		<textarea id="post-content" name="content" class="post-content" cols="34" rows="5" accesskey="E" title="Redakti afiŝon (E)">{{if .ReplyContext}}{{.ReplyContext.ReplyContent}}{{end}}</textarea>
+	</div>
+	<div>
+		{{if .Formats}}
+		<span class="post-form-field">
+			{{$defFormat := .DefaultFormat}}
+			<select id="post-format" name="format" accesskey="F" title="Formo (F)">
+				{{range .Formats}} 
+					<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option> 
+				{{end}}
+			</select>
+		</span>
+		{{end}}
+		<span class="post-form-field">
+			<select id="post-visilibity" name="visibility" {{if .ReplyContext}}{{if .ReplyContext.ForceVisibility}}disabled{{end}}{{end}} accesskey="S" title="Celo (S)">
+				<option value="public" {{if eq .DefaultVisibility "public"}}selected{{end}}>Publika</option>
+				<option value="unlisted" {{if eq .DefaultVisibility "unlisted"}}selected{{end}}>Nepublika</option>
+				<option value="private" {{if eq .DefaultVisibility "private"}}selected{{end}}>Privata</option>
+				<option value="direct" {{if eq .DefaultVisibility "direct"}}selected{{end}}>Rekta</option>
+			</select>
+		</span>
+		<span class="post-form-field">
+			<input type="checkbox" id="nsfw-checkbox" name="is_nsfw" value="true" accesskey="N" title="Konsterna (N)">
+			<label for="nsfw-checkbox"> Konsterna </label>
+		</span>
+	</div>
+	<div>
+		<span class="post-form-field">
+			<input id="post-file-picker" type="file" name="attachments" multiple accesskey="A" title="Kunsendaĵoj (A)">
+		</span>
+	</div>
+	<button type="submit" accesskey="P" title="Afiŝi (P)"> Afiŝi </button>
+	<button type="reset" title="Reset"> Nuligi </button>
+</form>
+{{end}}
+
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/quickreply.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/quickreply.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/quickreply.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/quickreply.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,12 @@
+{{with $s := .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Rapide Respondi </div>
+
+{{if .Ancestor}}
+{{template "status.tmpl" (WithContext .Ancestor $.Ctx)}}
+{{end}}
+{{template "status.tmpl" (WithContext .Status $.Ctx)}}
+{{template "postform.tmpl" (WithContext $s.PostContext $.Ctx)}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/requestlist.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/requestlist.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/requestlist.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/requestlist.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,36 @@
+{{with .Data}}
+<div>
+	{{range .}}
+	<div class="user-list-item">
+		<div class="user-list-profile-img">
+			<a class="img-link" href="/user/{{.ID}}">
+				<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
+			</a>
+		</div>
+		<div class="user-list-name">
+			<div>
+				<div class="status-dname"> {{EmojiFilter (HTML .DisplayName) .Emojis | Raw}} </div>
+				<a class="img-link" href="/user/{{.ID}}">
+					<div class="status-uname"> @{{.Acct}} </div>
+				</a>
+			</div>
+			<form class="d-inline" action="/accept/{{.ID}}" method="post" target="_self">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="accept" class="btn-link">
+			</form>
+			-
+			<form class="d-inline" action="/reject/{{.ID}}" method="post" target="_self">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="reject" class="btn-link">
+			</form>
+		</div>
+	</div>
+	{{else}}
+	<div class="no-data-found">Neniu datumo trovita</div>
+	{{end}}
+</div>
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/retweetedby.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/retweetedby.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/retweetedby.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/retweetedby.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,8 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Ripetita de </div>
+
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/root.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/root.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/root.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/root.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,17 @@
+{{with .Data}}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
+	<link rel="icon" type="image/png" href="/static/favicon.png">
+	<title>{{.Title}}</title>
+</head>
+<frameset cols="424px,*">
+	<frameset rows="316px,*">
+		<frame name="nav" src="/nav"> 
+		<frame name="notification" src="/notifications"> 
+	</frameset>
+	<frame name="main" src="/timeline/home"> 
+</frameset>
+</html>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/search.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/search.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/search.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/search.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,39 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Serĉi </div>
+
+<form class="search-form" action="/search" method="GET">
+	<span class="post-form-field">
+		<label for="query"> Serĉomendo </label>
+		<input id="query" name="q" value="{{.Q}}">
+	</span>
+	<span class="post-form-field">
+		<label for="type"> Celo </label>
+		<select id="type" name="type">
+			<option value="statuses" {{if eq .Type "statuses"}}selected{{end}}>Afiŝoj</option>
+			<option value="accounts" {{if eq .Type "accounts"}}selected{{end}}>Kontoj</option>
+		</select>
+	</span>
+	<button type="submit"> Serĉi </button>
+</form>
+
+{{if eq .Type "statuses"}}
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+{{if .Q}}<div class="no-data-found">Neniu datumo trovita</div>{{end}}
+{{end}}
+{{end}}
+
+{{if eq .Type "accounts"}}
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+{{end}}
+
+<div class="pagination">
+	{{if .NextLink}}
+		<a href="{{.NextLink}}">[sekva]</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/settings.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/settings.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/settings.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/settings.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,83 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Agordoj </div>
+
+<form id="settings-form" action="/settings" method="POST">
+	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+	<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+	{{if .PostFormats}}
+	<div class="settings-form-field">
+		<label for="post-format"> Default format </label>
+		{{$defFormat := .Settings.DefaultFormat}}
+		<select id="post-format" name="format">
+			{{range .PostFormats}} 
+				<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option> 
+			{{end}}
+		</select>
+	</div>
+	{{end}}
+	<div class="settings-form-field">
+		<label for="visibility"> Default scope </label>
+		<select id="visibility" name="visibility">
+			<option value="public" {{if eq .Settings.DefaultVisibility "public"}}selected{{end}}>Publika</option>
+			<option value="unlisted" {{if eq .Settings.DefaultVisibility "unlisted"}}selected{{end}}>Nepublika</option>
+			<option value="private" {{if eq .Settings.DefaultVisibility "private"}}selected{{end}}>Privata</option>
+			<option value="direct" {{if eq .Settings.DefaultVisibility "direct"}}selected{{end}}>Rekta</option>
+		</select>
+	</div>
+	<div class="settings-form-field">
+		<label for="notification-interval"> Reenlegado de sciigoj </label>
+		<select id="notification-interval" name="notification_interval">
+			<option value="0" {{if eq .Settings.NotificationInterval 0}}selected{{end}}>Malŝaltita</option>
+			<option value="30" {{if eq .Settings.NotificationInterval 30}}selected{{end}}>Post 30s</option>
+			<option value="60" {{if eq .Settings.NotificationInterval 60}}selected{{end}}>Post 1m</option>
+			<option value="120" {{if eq .Settings.NotificationInterval 120}}selected{{end}}>Post 2m</option>
+			<option value="300" {{if eq .Settings.NotificationInterval 300}}selected{{end}}>Post 5m</option>
+			<option value="600" {{if eq .Settings.NotificationInterval 600}}selected{{end}}>Post 10m</option>
+		</select>
+	</div>
+	<div class="settings-form-field">
+		<input id="copy-scope" name="copy_scope" type="checkbox" value="true" {{if .Settings.CopyScope}}checked{{end}}>
+		<label for="copy-scope"> Kopii celon respondante </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="thread-tab" name="thread_in_new_tab" type="checkbox" value="true" {{if .Settings.ThreadInNewTab}}checked{{end}}>
+		<label for="thread-tab"> Malfermi interparolojn ĉe novaj langentoj </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="hide-attachments" name="hide_attachments" type="checkbox" value="true" {{if .Settings.HideAttachments}}checked{{end}}>
+		<label for="hide-attachments"> Kaŝi kunsendataj dosieroj </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="mask-nsfw" name="mask_nsfw" type="checkbox" value="true" {{if .Settings.MaskNSFW}}checked{{end}}>
+		<label for="mask-nsfw"> Kaŝi konsternajn dosierojn </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="fluoride-mode" name="fluoride_mode" type="checkbox" value="true" {{if .Settings.FluorideMode}}checked{{end}}>
+		<label for="fluoride-mode"> Ŝalti <abbr title="Ŝalti Ĵavoskriptaj kapabloj aldonaj, ekz., ŝati/ripeti sen reenlego de paĝo kaj antaŭmontro de respondoj ĉe afiŝĉena paĝo">F¯ reĝimon</abbr> </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="anti-dopamine-mode" name="anti_dopamine_mode" type="checkbox"
+		value="true" {{if .Settings.AntiDopamineMode}}checked{{end}}>
+		<label for="anti-dopamine-mode"> Ŝalti <abbr title="Ne nombri ŝatojn/ripetojn/sciigojn kaj ne ricevi ŝatajn/ripetajn/aboniĝajn sciigojn">C₈H₁₁NO₂-kontraŭan reĝimon</abbr> </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="hide-unsupported-notifs" name="hide_unsupported_notifs" type="checkbox"
+		value="true" {{if .Settings.HideUnsupportedNotifs}}checked{{end}}>
+		<label for="hide-unsupported-notifs"> Kaŝi nesubtenatajn sciigojn </label>
+	</div>
+	<div class="settings-form-field">
+		<input id="dark-mode" name="dark_mode" type="checkbox" value="true" {{if .Settings.DarkMode}}checked{{end}}>
+		<label for="dark-mode"> Uzi malhelan haŭton </label>
+	</div>
+	<div class="settings-form-field">
+		<label for="css"> Propra CSS: </label>
+	</div>
+	<div>
+		<textarea id="css" name="css" cols="80" rows="8">{{.Settings.CSS}}</textarea>
+	</div>
+	<button type="submit"> Konservi </button>
+</form>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/signin.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/signin.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/signin.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/signin.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,23 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Bloat </div>
+<div class="signin-desc">
+	Retejkliento por <a href="https://pleroma.social" target="_blank">Federujo</a>.
+</div>
+
+<form class="signin-form" action="/signin" method="post">
+	Entajpu la retnomon de via federuja servilo por saluti
+	<br/>
+	<input type="text" name="instance" placeholder="ekzemplo.com" required>
+	<br/>
+	<button type="submit"> Saluti </button>
+</form>
+
+<p>
+	Vizitu
+	<a href="https://git.freesoftwareextremist.com/bloat" target="_blank">git.freesoftwareextremist.com/bloat</a>
+	por pliaj detaloj.
+</P>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/status.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/status.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/status.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/status.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,247 @@
+{{with .Data}}
+<div id="status-{{.ID}}" class="status-container-container">
+	{{if .Reblog}}
+	<div class="retweet-info">
+		<a class="img-link" href="/user/{{.Account.ID}}">
+			<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="24" />
+		</a>
+		<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
+		<a href="/user/{{.Account.ID}}"> 
+			<span class="status-uname"> @{{.Account.Acct}} </span> 
+		</a>
+		ripetiĝis
+	</div>
+	{{template "status" (WithContext .Reblog $.Ctx)}}
+	{{else}}
+	{{block "status" (WithContext . $.Ctx)}}
+	{{with $s := .Data}}
+	<div class="status-container status-{{.ID}}" data-id="{{.ID}}">
+		<div class="status-profile-img-container">
+			<a class="img-link" href="/user/{{.Account.ID}}">
+				<img class="status-profile-img" src="{{.Account.Avatar}}" title="@{{.Account.Acct}}" alt="avatar" height="48" />
+			</a>
+		</div>
+		<div class="status"> 
+			<div class="status-name">
+				<bdi class="status-dname"> {{EmojiFilter (HTML .Account.DisplayName) .Account.Emojis | Raw}} </bdi>
+				<a href="/user/{{.Account.ID}}">
+					<span class="status-uname"> @{{.Account.Acct}} </span>
+				</a>
+				<div class="more-container">
+					<div class="remote-link">
+						{{if .IDNumbers}}#{{index .IDNumbers .ID}}{{end}} {{.Visibility}}
+					</div>
+					<div class="more-content">
+						<a class="more-link" href="{{.URL}}" target="_blank">
+							fonto
+						</a>
+						<a class="more-link" href="/quickreply/{{.ID}}#status-{{.ID}}">
+							rapide respondi
+						</a>
+						{{if .Muted}}
+						<form action="/unmuteconv/{{.ID}}" method="post" target="_self">
+							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+							<input type="submit" value="malsilentigi" class="btn-link more-link">
+						</form>
+						{{else}}
+						<form action="/muteconv/{{.ID}}" method="post" target="_self">
+							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+							<input type="submit" value="silentigi" class="btn-link more-link">
+						</form>
+						{{end}}
+						{{if .Bookmarked}}
+						<form action="/unbookmark/{{.ID}}" method="post" target="_self">
+							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+							<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
+							<input type="submit" value="senlegosigni" class="btn-link more-link">
+						</form>
+						{{else}}
+						<form action="/bookmark/{{.ID}}" method="post" target="_self">
+							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+							<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
+							<input type="submit" value="legosigni" class="btn-link more-link">
+						</form>
+						{{end}}
+						{{if eq $.Ctx.UserID .Account.ID}}
+						<form action="/delete/{{.ID}}" method="post" target="_self">
+							<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+							<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+							<input type="submit" value="forigi" class="btn-link more-link">
+						</form>
+						{{end}}
+					</div>
+				</div>
+			</div>
+			<div class="status-reply-container">
+				{{if .InReplyToID}}
+				<a class="status-reply-to-link" href="{{if not .ShowReplies}}/thread/{{.InReplyToID}}{{end}}#status-{{.InReplyToID}}"> 
+					 responde al {{if .IDNumbers}}#{{index .IDNumbers .InReplyToID}}{{end}} {{if .Pleroma.InReplyToAccountAcct}}@{{.Pleroma.InReplyToAccountAcct}}{{else if not .IDNumbers}}{{.InReplyToID}}{{end}}
+				</a>
+				{{if index .IDReplies .ID}} <span class="status-reply-info-divider"> - </span> {{end}}
+				{{end}}
+				{{if .ShowReplies}}
+				{{if index .IDReplies .ID}} <span class="status-reply-text"> respondoj: </span> {{end}}
+				{{range index .IDReplies .ID}}
+				<a class="status-reply-link" href="#status-{{.ID}}">#{{.Number}}</a>
+				{{end}}
+				{{end}}
+			</div>
+			{{if (or .Content .SpoilerText)}}
+			<div class="status-content">
+				{{if .SpoilerText}}{{EmojiFilter (HTML .SpoilerText) .Emojis | Raw}}<br/>{{end}}
+				{{StatusContentFilter .Content .Emojis .Mentions | Raw}}
+			</div>
+			{{end}}
+			{{if .MediaAttachments}}
+			<div class="status-media-container">
+				{{range .MediaAttachments}}
+
+				{{if eq .Type "image"}}
+				{{if $.Ctx.HideAttachments}}
+				<a href="{{.URL}}" target="_blank">
+					[image{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
+				</a>
+				{{else}}
+				<a class="img-link" href="{{.URL}}" target="_blank" title="{{.Description}}">
+					<img class="status-image" src="{{.PreviewURL}}" alt="status-image" height="240" />
+					{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
+					<img src="https://jam.xwx.moe/static/bildoj/konsterna.jpg" class="status-nsfw-overlay"/>
+					{{end}}
+				</a>
+				{{end}}
+
+				{{else if eq .Type "audio"}}
+				{{if $.Ctx.HideAttachments}}
+				<a href="{{.URL}}" target="_blank">
+					[audio{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
+				</a>
+				{{else}}
+				<audio class="status-audio" controls title="{{.Description}}">
+					<source src="{{.URL}}">
+					<a href="{{.URL}}" target="_blank"> [audio] </a>
+				</audio>
+				{{end}}
+
+				{{else if eq .Type "video"}}
+				{{if $.Ctx.HideAttachments}}
+				<a href="{{.URL}}" target="_blank">
+					[video{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
+				</a>
+				{{else}}
+				<div class="status-video-container" title="{{.Description}}">
+					<video class="status-video" controls height="240">
+						<source src="{{.URL}}">
+						<a href="{{.URL}}" target="_blank"> [video] </a>
+					</video>
+					{{if (and $.Ctx.MaskNSFW $s.Sensitive)}}
+					<img src="https://jam.xwx.moe/static/bildoj/konsterna.jpg" class="status-nsfw-overlay"/>
+					{{end}}
+				</div>
+				{{end}}
+
+				{{else}}
+				<a href="{{.URL}}" target="_blank"> 
+					[attachment{{if $s.Sensitive}}/nsfw{{end}}{{if .Description}}: {{.Description}}{{end}}]
+				</a>
+				{{end}}
+				{{end}}
+			</div>
+			{{end}}
+			{{if .Poll}}
+			<form class="poll-form" action="/vote/{{.Poll.ID}}" method="POST" target="_self">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="hidden" name="status_id" value="{{$s.ID}}">
+				{{range $i, $o := .Poll.Options}}
+				<div class="poll-option">
+					{{if (or $s.Poll.Expired $s.Poll.Voted)}}
+					<div> {{EmojiFilter (HTML $o.Title) $s.Emojis | Raw}} - {{$o.VotesCount}} votes </div>
+					{{else}}
+					<input type="{{if $s.Poll.Multiple}}checkbox{{else}}radio{{end}}" name="choices" 
+						id="poll-{{$s.ID}}-{{$i}}" value="{{$i}}">
+					<label for="poll-{{$s.ID}}-{{$i}}"> 
+						{{EmojiFilter (HTML $o.Title) $s.Emojis | Raw}}
+					</label>
+					{{end}}
+				</div>
+				{{end}}
+				{{if not (or .Poll.Expired .Poll.Voted)}}
+				<button type="submit"> Voĉdoni </button>
+				{{end}}
+				<div class="poll-info">
+					<span>{{.Poll.VotesCount}} voĉdonoj</span>
+					{{if .Poll.Expired}}
+					<span> - enketo finiĝis </span>
+					{{else if .Poll.ExpiresAt}}
+					<span>
+						- enketo finiĝos je
+						<time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}"> 
+							{{TimeUntil .Poll.ExpiresAt}} 
+						</time> 
+					</span>
+					{{end}}
+				</div>
+			</form>
+			{{end}}
+			<div class="status-action-container"> 
+				<div class="status-action">
+					<a href="/thread/{{.ID}}?reply=true#status-{{.ID}}"> 
+						respondi
+					</a>
+					<a class="status-reply-count" href="/thread/{{.ID}}#status-{{.ID}}" {{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}>
+						{{if and (not $.Ctx.AntiDopamineMode) .RepliesCount}}
+							({{DisplayInteractionCount .RepliesCount}})
+						{{end}}
+					</a>
+				</div>
+				<div class="status-action">
+					{{$rt := "ripeti"}} {{if .Reblogged}} {{$rt = "malripeti"}} {{end}}
+					{{$rtaction := "retweet"}} {{if .Reblogged}} {{$rtaction = "unretweet"}} {{end}}
+					<form class="status-retweet" data-action="{{$rtaction}}" action="/{{$rtaction}}/{{.ID}}" method="post" target="_self">
+						<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+						<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+						<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
+						<input type="submit" value="{{$rt}}" class="btn-link" 
+							{{if or (eq .Visibility "private") (eq .Visibility "direct")}}title="ĉi tiu afiŝo ne povas ripetiĝi" disabled{{end}}>
+						<a class="status-retweet-count" href="/retweetedby/{{.ID}}" title="klaki por montri la liston"> 
+							{{if and (not $.Ctx.AntiDopamineMode) .ReblogsCount}}
+								({{DisplayInteractionCount .ReblogsCount}})
+							{{end}}
+						</a>
+					</form>
+				</div>
+				<div class="status-action">
+					{{$like := "ŝati"}} {{if .Favourited}} {{$like = "senŝati"}} {{end}}
+					{{$likeaction := "like"}} {{if .Favourited}} {{$likeaction = "unlike"}} {{end}}
+					<form class="status-like" data-action="{{$likeaction}}" action="/{{$likeaction}}/{{.ID}}" method="post" target="_self">
+						<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+						<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+						<input type="hidden" name="retweeted_by_id" value="{{.RetweetedByID}}">
+						<input type="submit" value="{{$like}}" class="btn-link">
+						<a class="status-like-count" href="/likedby/{{.ID}}" title="klaki por montri la liston"> 
+							{{if and (not $.Ctx.AntiDopamineMode) .FavouritesCount}}
+								({{DisplayInteractionCount .FavouritesCount}})
+							{{end}}
+						</a>
+					</form>
+				</div>
+				<div class="status-action status-action-last">
+					<a class="status-time" href="{{if not .ShowReplies}}/thread/{{.ID}}{{end}}#status-{{.ID}}"
+						{{if $.Ctx.ThreadInNewTab}}target="_blank"{{end}}> 
+						<time datetime="{{FormatTimeRFC3339 .CreatedAt.Time}}" title="{{FormatTimeRFC822 .CreatedAt.Time}}">
+							{{TimeSince .CreatedAt.Time}}
+						</time> 
+					</a>
+				</div>
+			</div>
+		</div>
+	</div>
+	{{end}}
+	{{end}}
+	{{end}}
+</div>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/thread.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/thread.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/thread.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/thread.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,18 @@
+{{with $s := .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title-container">
+	<span class="page-title"> Interparolo </span>
+	<a class="page-refresh" href="{{$.Ctx.Referrer}}" accesskey="T" title="Reenlegi (T)">reenlegi</a>
+</div>
+
+{{range .Statuses}}
+
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{if $s.PostContext.ReplyContext}}{{if eq .ID $s.PostContext.ReplyContext.InReplyToID}}
+{{template "postform.tmpl" (WithContext $s.PostContext $.Ctx)}}
+{{end}}{{end}}
+
+{{end}}
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/timeline.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/timeline.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/timeline.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/timeline.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,32 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title-container">
+	<span class="page-title"> {{.Title}}  </span>
+	<a class="page-refresh" href="{{$.Ctx.Referrer}}" accesskey="T" title="Reenlegi (T)">reenlegi</a>
+</div>
+
+{{if eq .Type "remote"}}
+<form class="search-form" action="/timeline/remote" method="GET">
+	<span class="post-form-field">
+		<label for="instance"> Noda retnomo </label>
+		<input id="instance" name="instance" value="{{.Instance}}">
+	</span>
+	<button type="submit"> Serĉi </button>
+</form>
+{{end}}
+
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{end}}
+
+<div class="pagination">
+	{{if .PrevLink}}
+		<a href="{{.PrevLink}}">[antaŭa]</a>
+	{{end}}
+	{{if .NextLink}}
+		<a href="{{.NextLink}}">[sekva]</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlistitem.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlistitem.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlistitem.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlistitem.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,15 @@
+{{with .Data}}
+<div class="user-list-item">
+	<div class="user-list-profile-img">
+		<a class="img-link" href="/user/{{.ID}}">
+			<img class="status-profile-img" src="{{.Avatar}}" title="@{{.Acct}}" alt="avatar" height="48" />
+		</a>
+	</div>
+	<div class="user-list-name">
+		<div class="status-dname"> {{EmojiFilter (HTML .DisplayName) .Emojis | Raw}} </div>
+		<a class="img-link" href="/user/{{.ID}}">
+			<div class="status-uname"> @{{.Acct}} </div>
+		</a>
+	</div>
+</div>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlist.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlist.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlist.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/userlist.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,11 @@
+{{with .Data}}
+<div>
+	{{range .}}
+		{{template "userlistitem.tmpl" (WithContext . $.Ctx)}}
+	{{else}}
+	<div class="no-data-found">No data found</div>
+	{{end}}
+</div>
+{{else}}
+<div class="no-data-found">No data found</div>
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/usersearch.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/usersearch.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/usersearch.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/usersearch.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,26 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Search {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}}'s statuses </div>
+
+<form class="search-form" action="/usersearch/{{.User.ID}}" method="GET">
+	<span class="post-form-field">
+		<label for="query"> Query </label>
+		<input id="query" name="q" value="{{.Q}}">
+	</span>
+	<button type="submit"> Search </button>
+</form>
+
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+{{if .Q}}<div class="no-data-found">No data found</div>{{end}}
+{{end}}
+
+<div class="pagination">
+	{{if .NextLink}}
+		<a href="{{.NextLink}}">[next]</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}
diff -rN -u "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/user.tmpl" "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/user.tmpl"
--- "old-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/user.tmpl"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/bloat-fe/instance/\305\235ablonoj/user.tmpl"	2024-11-22 17:15:55.449621685 +0000
@@ -0,0 +1,195 @@
+{{with .Data}}
+{{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
+<div class="page-title"> Uzanto </div>
+
+<div class="user-info-container">
+<div>
+	<div class="user-profile-img-container">
+		<a class="img-link" href="{{.User.Avatar}}" target="_blank">
+			<img class="user-profile-img" src="{{.User.Avatar}}" alt="profile-avatar" height="96" />
+		</a>
+	</div>
+	<div class="user-profile-details-container">
+		<div>
+			<bdi class="status-dname"> {{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}} </bdi>
+			<span class="status-uname"> @{{.User.Acct}} </span>
+			<a class="remote-link" href="{{.User.URL}}" target="_blank" title="remote profile">
+				source
+			</a>
+		</div>
+		{{if not .IsCurrent}}
+		<div>
+			<span> {{if .User.Pleroma.Relationship.FollowedBy}} follows you - {{end}} </span>  
+			{{if .User.Pleroma.Relationship.BlockedBy}} blocks you - {{end}}
+			{{if .User.Pleroma.Relationship.Following}} 
+			<form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="malaboni" class="btn-link">
+			</form>
+			{{else}}
+			<form class="d-inline" action="/follow/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="{{if .User.Pleroma.Relationship.Requested}}resend request{{else}}aboni{{end}}" class="btn-link">
+			</form>
+			{{end}}
+			{{if .User.Pleroma.Relationship.Requested}}
+			-
+			<form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="nuligi peton" class="btn-link">
+			</form>
+			{{end}}
+			-
+			{{if .User.Pleroma.Relationship.Subscribing}}
+			<form class="d-inline" action="/unsubscribe/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="nuligi duonabonon" class="btn-link">
+			</form>
+			{{else}}
+			<form class="d-inline" action="/subscribe/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="duonaboni" class="btn-link">
+			</form>
+			{{end}}
+		</div>
+		<div>
+			{{if .User.Pleroma.Relationship.Blocking}}
+			<form class="d-inline" action="/unblock/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="malbloki" class="btn-link">
+			</form>
+			{{else}}
+			<form class="d-inline" action="/block/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="bloki" class="btn-link">
+			</form>
+			{{end}}
+			-
+			{{if .User.Pleroma.Relationship.Muting}}
+			<form class="d-inline" action="/unmute/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="malsilentigi" class="btn-link">
+			</form>
+			{{else}}
+			<a href="/mute/{{.User.ID}}"> silentigi </a>
+			{{end}}
+			{{if .User.Pleroma.Relationship.Following}} 
+			-
+			{{if .User.Pleroma.Relationship.ShowingReblogs}}
+			<form class="d-inline" action="/follow/{{.User.ID}}?reblogs=false" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="kaŝi ripetojn" class="btn-link">
+			</form>
+			{{else}}
+			<form class="d-inline" action="/follow/{{.User.ID}}" method="post">
+				<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
+				<input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
+				<input type="submit" value="montri ripetojn" class="btn-link">
+			</form>
+			{{end}}
+			{{end}}
+		</div>
+		{{end}}
+		<div>
+			<a href="/user/{{.User.ID}}"> statuses ({{.User.StatusesCount}}) </a> - 
+			<a href="/user/{{.User.ID}}/following"> abonatoj ({{.User.FollowingCount}}) </a> - 
+			<a href="/user/{{.User.ID}}/followers"> abonantoj ({{.User.FollowersCount}}) </a> - 
+			<a href="/user/{{.User.ID}}/media"> dosieroj </a>
+		</div>
+		{{if .IsCurrent}}
+		<div>
+			<a href="/user/{{.User.ID}}/bookmarks"> legosignoj </a>
+			- <a href="/user/{{.User.ID}}/likes"> ŝatataj </a>
+			- <a href="/user/{{.User.ID}}/mutes"> silentigitaj </a>
+			- <a href="/user/{{.User.ID}}/blocks"> blokitaj </a>
+			{{if .User.Locked}}- <a href="/user/{{.User.ID}}/requests"> petoj </a>{{end}}
+		</div>
+		{{end}}
+		<div>
+			<a href="/usersearch/{{.User.ID}}"> serĉi afiŝojn </a>
+			{{if .IsCurrent}} - <a href="/filters"> filtriloj </a> {{end}}
+		</div>
+	</div>
+	<div class="user-profile-decription">
+	{{EmojiFilter .User.Note .User.Emojis | Raw}}
+	</div>
+	{{if .User.Fields}}
+	<div class="user-fields">
+		{{range .User.Fields}}
+		<div>{{EmojiFilter .Name $.Data.User.Emojis | Raw}} - {{EmojiFilter .Value $.Data.User.Emojis | Raw}}</div>
+		{{end}}
+	</div>
+	{{end}}
+</div>
+</div>
+
+{{if eq .Type ""}}
+<div class="page-title"> Afiŝoj </div>
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+{{else if eq .Type "following"}}
+<div class="page-title"> Abonataj </div>
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{else if eq .Type "followers"}}
+<div class="page-title"> Abonantoj </div>
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{else if eq .Type "media"}}
+<div class="page-title"> Afiŝoj kun dosieroj </div>
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+{{else if eq .Type "bookmarks"}}
+<div class="page-title"> Legosignoj </div>
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+{{else if eq .Type "likes"}}
+<div class="page-title"> Ŝatataj </div>
+{{range .Statuses}}
+{{template "status.tmpl" (WithContext . $.Ctx)}}
+{{else}}
+<div class="no-data-found">Neniu datumo trovita</div>
+{{end}}
+
+{{else if eq .Type "mutes"}}
+<div class="page-title"> Silentigitaj </div>
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{else if eq .Type "blocks"}}
+<div class="page-title"> Blocks </div>
+{{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
+
+{{else if eq .Type "requests"}}
+<div class="page-title"> Abonpetoj </div>
+{{template "requestlist.tmpl" (WithContext .Users $.Ctx)}}
+{{end}}
+
+<div class="pagination">
+	{{if .NextLink}}
+		<a href="{{.NextLink}}">[sekva]</a>
+	{{end}}
+</div>
+
+{{template "footer.tmpl"}}
+{{end}}