cSvn-UI for SVN Repositories

cGit-UI – is a web interface for Subversion (SVN) Repositories. cSvn CGI script is writen in C and therefore it's fast enough

6 Commits   0 Branches   2 Tags
author: kx <kx@radix.pro> 2023-03-24 03:55:33 +0300 committer: kx <kx@radix.pro> 2023-03-24 03:55:33 +0300 commit: bfc1508d26c89c9a36d2d9a827fe2c4ed128884d parent: c836ae3775cf72f17e0b7e3792d156fdb389bee3
Commit Summary:
Version 0.1.4
Diffstat:
1 file changed, 1351 insertions, 0 deletions
diff --git a/csvncgi/.csvn/css/csvn.css b/csvncgi/.csvn/css/csvn.css
new file mode 100644
index 0000000..b8f2310
--- /dev/null
+++ b/csvncgi/.csvn/css/csvn.css
@@ -0,0 +1,1458 @@
+
+/*****************************************************************
+  static CSS: can be included by link rel="stylesheet" href="..."
+ */
+body {
+  margin: 0px;
+  min-width: 380px;
+  background-color: #dfdfdf;
+  color: #545454;
+
+  font-family: 'Roboto';
+  font-size: 16px;
+  font-weight: normal;
+}
+@media screen and (max-width: 1920px) {
+  body {
+    font-size: 14px;
+  }
+}
+
+/******************************
+  Common styles for HTML tags:
+ */
+a {
+  color: #545454;
+  background-color: transparent;
+}
+a, a:hover, a:active, a:focus {
+  outline: 0;
+  text-decoration: none;
+}
+a:hover {
+  color: #b40b22;
+}
+
+p {
+  text-align: justify;
+}
+p code {
+  font-size: 0.875em;   /* 14px   code in paragraph outside <pre> tags */
+  font-size: 0.90625em; /* 14.5px code in paragraph outside <pre> tags */
+}
+h1 {
+  font-family: 'Fira Sans';
+  font-size: 2.5em; /* 40px */
+  font-weight: 500;
+}
+@media screen and (max-width: 768px) {
+  h1 {
+    margin: 1rem 0rem;
+    font-size: 2.125em; /* 34px */
+  }
+}
+h2, h3, h4, h5, h6 {
+  font-family: 'Fira Sans';
+  font-weight: 500;
+}
+
+.leading {
+  font-size: 1.125em; /* 18px */
+  margin: 2em .175em;
+}
+
+/***********
+  Tooltips:
+ */
+.tooltip {
+  position: absolute;
+  z-index: 16000;
+  left: -9999px;
+  text-align: left;
+  padding: 1px 8px;
+  background-color: #fcfcfc;
+  border: 1px solid #71ad93;
+  border-radius: 4px;
+  box-shadow: 0 0 5px #aaa;
+
+  font-family: 'Roboto';
+  font-weight: 400;
+  font-style: normal;
+}
+.tooltip p {
+  white-space: nowrap;
+  margin: 3px 2px 2px 2px;
+  color: #727272;
+  background-color: #fcfcfc;
+  padding: 0px 2px;
+  font-size: 12px;
+}
+
+
+/******************************
+  Files with syntax highlight:
+ */
+pre {
+  font-family: 'Roboto Mono';
+  font-size: 0.875em;
+}
+.tab {
+  color: #c4c4c4;
+}
+/* override/add hljs class properties: */
+.hljs {
+  padding: 0.5em 0.5em 0.5em 1.5em;
+  border: 1px solid #f9f9f9;
+  border-radius: 4px;
+}
+
+/**************************
+  Markdown formated files:
+ */
+.markdown-content {
+  margin: 1em 0px;
+  padding: 0.5em 1em;
+  border: 1px solid #f9f9f9;
+  border-radius: 4px;
+}
+.markdown-content h1, h2, h3, h4, h5, h6 {
+  padding: 0.875rem 0rem 0.2rem;
+}
+/***************************************************************
+  Pseudo paragraps inserted before headers to skip the stiky
+  Main Menu Bar height when we going to anchor in a Markdown
+  document.
+ ***************************************************************/
+.headers-anchor {
+  margin:      0;
+  padding:     0;
+  position:    relative;
+  visibility:  hidden;
+  top:        -90px;
+}
+
+/*****************
+  Useful classes:
+ */
+.full-height {
+  height: 100%;
+}
+.full-width {
+  width: 100%;
+}
+.right {
+  margin: 0rem 0rem 0rem auto;
+}
+.left {
+  margin: 0rem auto 0rem 0rem;
+}
+.center {
+  margin: 0rem auto;
+}
+
+/***********************
+  Whole body container:
+ */
+.pushable {
+  overflow-x: hidden; /* hide popup menu bars */
+  width: 100%;
+}
+.pusher {
+  position: relative;
+  overflow: hidden;
+  min-height: 100%;
+  z-index: 2;
+}
+
+/****************************
+  Default Vertical Segments:
+ */
+.segment {
+  margin: 0px;
+  padding: 1em 0em 1em 0em;
+}
+.description.segment {
+  background-color: #adadad;
+  background-color: #a4a4a4;
+}
+.header.segment {
+  background-color: rgba( 102, 102, 102, 0.97 );
+/*  position: -webkit-sticky;*/
+  position: sticky;
+  top: 0;
+  z-index:10;
+}
+.header.segment > .container {
+  /* border-bottom: 1px solid #e9e9e9; */
+}
+.content.segment {
+  padding: 3rem 0rem 4rem 0rem;
+  background-color: #ffffff;
+}
+.footer.segment {
+  background-color: #dfdfdf; /* the same as body background! */
+  border-top: 1px solid #d9d9d9;
+}
+
+
+/*******************************
+  Default Horizontal Container:
+ */
+.container { margin: -1rem 1rem; }
+@media screen and (max-width: 768px) {
+  .container { margin: -1rem 0rem; }
+}
+@media screen and (min-width: 1920px) {
+  .container { margin: -1rem 8rem; }
+}
+@media screen and (min-width: 1400px) {
+  .container { margin: -1rem 4rem; }
+}
+@media screen and (min-width: 992px) {
+  .container { margin: -1rem 2rem; }
+}
+
+
+/*******************
+  Rows and Columns:
+ */
+.row {
+  display: grid;
+  justify-content: end;
+  grid-template-columns: repeat(24, 1fr);
+  grid-template-rows: 1fr;
+}
+.row:nth-of-type(2n) {
+  background-color: #f8f8f8;
+}
+
+[class^='row'] {
+  padding-top: 4px;
+  padding-bottom: 2px;
+}
+
+ .col-1 { grid-column: span  1; }
+ .col-2 { grid-column: span  2; }
+ .col-3 { grid-column: span  3; }
+ .col-4 { grid-column: span  4; }
+ .col-5 { grid-column: span  5; }
+ .col-6 { grid-column: span  6; }
+ .col-7 { grid-column: span  7; }
+ .col-8 { grid-column: span  8; }
+ .col-9 { grid-column: span  9; }
+.col-10 { grid-column: span 10; }
+.col-11 { grid-column: span 11; }
+.col-12 { grid-column: span 12; }
+.col-13 { grid-column: span 13; }
+.col-14 { grid-column: span 14; }
+.col-15 { grid-column: span 15; }
+.col-16 { grid-column: span 16; }
+.col-17 { grid-column: span 17; }
+.col-18 { grid-column: span 18; }
+.col-19 { grid-column: span 19; }
+.col-20 { grid-column: span 20; }
+.col-21 { grid-column: span 21; }
+.col-22 { grid-column: span 22; }
+.col-23 { grid-column: span 23; }
+.col-24 { grid-column: span 24; }
+
+
+[class^="col-"] {
+  padding: 0;
+  overflow: hidden; /* important for .trunc {} with text-overflow: ellipsis; */
+}
+
+.col-site-desc { grid-column: span 18; }
+.col-site-icon { grid-column: span  6; }
+.col-site-stat { grid-column: span 24; }
+
+.col-name    { grid-column: span  4; }
+.col-desc    { grid-column: span 12; }
+.col-owner   { grid-column: span  4; }
+.col-rev     { grid-column: span  2; }
+.col-idle    { grid-column: span  2; }
+
+.col-path    { grid-column: span 15; }
+.col-size    { grid-column: span  2; } /* 9 digits   max */
+.col-date    { grid-column: span  2; } /* YYYY-MM-DD max */
+.col-links   { grid-column: span  3; }
+
+.col-cmsg    { grid-column: span 18; }
+.col-author  { grid-column: span  2; }
+
+/* порядок media запросов имеет значение */
+@media screen and (min-width: 1921px) {
+  .col-name   { grid-column: span  4; }
+  .col-desc   { grid-column: span 12; }
+  .col-owner  { grid-column: span  4; }
+  .col-rev    { grid-column: span  2; }
+  .col-idle   { grid-column: span  2; }
+
+  .col-path   { grid-column: span 15; }
+  .col-size   { grid-column: span  2; }
+  .col-date   { grid-column: span  2; }
+  .col-links  { grid-column: span  3; }
+
+  .col-cmsg   { grid-column: span 18; }
+  .col-author { grid-column: span  2; }
+}
+@media screen and (max-width: 1920px) {
+  .col-name   { grid-column: span  4; }
+  .col-desc   { grid-column: span 12; }
+  .col-owner  { grid-column: span  4; }
+  .col-rev    { grid-column: span  2; }
+  .col-idle   { grid-column: span  2; }
+
+  .col-path   { grid-column: span 15; }
+  .col-size   { grid-column: span  2; }
+  .col-date   { grid-column: span  2; }
+  .col-links  { grid-column: span  3; }
+
+  .col-cmsg   { grid-column: span 17; }
+  .col-author { grid-column: span  3; }
+}
+@media screen and (max-width: 1440px) {
+  .col-name   { grid-column: span  4; }
+  .col-desc   { grid-column: span 12; }
+  .col-owner  { grid-column: span  4; }
+  .col-rev    { grid-column: span  2; }
+  .col-idle   { grid-column: span  2; }
+
+  .col-path   { grid-column: span 15; }
+  .col-size   { grid-column: span  2; }
+  .col-date   { grid-column: span  2; }
+  .col-links  { grid-column: span  3; }
+
+  .col-cmsg   { grid-column: span 16; }
+  .col-author { grid-column: span  4; }
+}
+@media screen and (max-width: 1200px) {
+  .col-name   { grid-column: span  5; }
+  .col-desc   { grid-column: span 10; }
+  .col-owner  { grid-column: span  4; }
+  .col-rev    { grid-column: span  2; }
+  .col-idle   { grid-column: span  3; }
+
+  .col-path   { grid-column: span 12; }
+  .col-size   { grid-column: span  3; }
+  .col-date   { grid-column: span  3; }
+  .col-links  { grid-column: span  4; }
+
+  .col-cmsg   { grid-column: span 14; }
+  .col-author { grid-column: span  4; }
+}
+@media screen and (max-width: 992px) {
+  .col-name   { grid-column: span  4; }
+  .col-desc   { grid-column: span 10; }
+  .col-owner  { grid-column: span  4; }
+  .col-rev    { grid-column: span  3; }
+  .col-idle   { grid-column: span  3; }
+
+  .col-path   { grid-column: span  8; }
+  .col-size   { grid-column: span  4; }
+  .col-date   { grid-column: span  4; }
+  .col-links  { grid-column: span  5; }
+
+  .col-cmsg   { grid-column: span 12; }
+  .col-author { grid-column: span  5; }
+}
+@media screen and (max-width: 768px) {
+  .col-name   { grid-column: span  5; }
+  .col-desc   { grid-column: span  7; }
+  .col-owner  { grid-column: span  5; }
+  .col-rev    { grid-column: span  3; }
+  .col-idle   { grid-column: span  4; }
+
+  .col-path   { grid-column: span  8; }
+  .col-size   { grid-column: span  4; }
+  .col-date   { grid-column: span  4; }
+  .col-links  { grid-column: span  5; }
+
+  .col-cmsg   { grid-column: span 11; }
+  .col-author { grid-column: span  6; }
+}
+
+@media screen and (max-width: 640px) {
+  .col-site-desc { grid-column: span 24; }
+  .col-site-icon { grid-column: span 24; }
+
+  .col-name   { grid-column: span  9; }
+  .col-desc   { display: none;        }
+  .col-owner  { grid-column: span  7; }
+  .col-rev    { grid-column: span  4; }
+  .col-idle   { grid-column: span  4; }
+
+  .col-path   { grid-column: span  9; }
+  .col-size   { grid-column: span  5; }
+  .col-date   { display: none; }
+  .col-links  { grid-column: span  6; }
+
+  .repo-log-header .col-date, .log .col-date {
+    display: block !important;
+    grid-column: span 5 !important;
+  }
+
+  .col-cmsg   { grid-column: span  9; }
+  .col-author { grid-column: span  6; }
+}
+
+
+/********************************
+  Description segment's classes:
+ */
+.csvn-main-description {
+  margin: 0rem 1rem;
+}
+.csvn-main-description h1 {
+  color: #f0f0ee;
+  margin-top: 1em;
+  margin-bottom: 0em;
+  font-size: 2.25em;
+  font-weight: 500;
+  color: #f0f0ee;
+  text-align: left;
+}
+.csvn-main-description p {
+  color: #5a0510;
+  margin-top: 0em;
+  padding-left: .1em;
+  padding-right: 0.875em;
+  padding-top: .6em;
+  padding-bottom: .1em;
+  font-family: 'Roboto';
+  font-size: 1.125em;
+  font-weight: 400;
+  text-align: justify;
+}
+.banner {
+  margin: 3em auto 1em auto;
+}
+@media screen and (max-width: 640px) {
+  .banner { margin: 1em auto 1em auto; }
+}
+.banner-image {
+  margin: 0em auto;
+  width: 96px;
+  height: 96px;
+  border-radius: 8px;
+  overflow: hidden;
+}
+@media screen and (min-width: 768px) {
+  .banner-image { margin: 0em 2em 0em auto; }
+}
+.banner-image img {
+  max-width: 96px;
+  max-height: 96px;
+}
+.site-stat {
+  color: #f7f5ef;
+  padding: 0.4em 0em 1.5em 0em;
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+  text-align: right;
+}
+
+/***************************
+  Header segment's classes:
+ */
+/* main menu: */
+.csvn-main-menu {
+  display: flex;
+  flex-direction: row;
+  border-bottom: 1px solid #979797;
+  align-items: center;
+  font-size: 1em; /* 16px */
+}
+@media screen and (min-width: 992px) {
+  .csvn-main-menu {
+    font-size: 1.125em; /* 18px */
+  }
+}
+
+.menu {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+}
+.menu a {
+  color: #f0f0ee;
+  background-color: transparent;
+}
+.menu a:hover {
+  text-shadow:  0px  0px 1px rgba(255,255,255,0.9);
+}
+
+.item {
+  margin: 1rem 0.5rem;
+  white-space: nowrap;
+  overflow-y: hidden;
+}
+.item > .icon {
+  width: 1.625rem;
+  text-align: center;
+  color: #bec3bb;
+}
+
+.left.menu > .item:first-of-type {
+  margin-left: 1rem;
+}
+.right.menu > .item:last-of-type {
+  margin-right: 1rem;
+}
+
+.header > .container > .csvn-main-menu > .right.menu {
+  /*background-color: #fcffff;*/
+}
+.header > .container > .csvn-main-menu > .left.menu {
+  /* background-color: #0f0; */
+}
+
+@media screen and (max-width: 768px) {
+  .header > .container > .csvn-main-menu > .left.menu > .item:not([class^="logo"]) {
+    display: none;
+  }
+  .header > .container > .csvn-main-menu > .right.menu > .item {
+    display: none;
+  }
+
+  .header > .container > .csvn-main-menu > .left.menu {
+    margin-right: -3.5rem !important;
+    margin-left: auto !important;
+  }
+  .header > .container > .csvn-main-menu > .right.menu {
+    margin-right: 0rem !important;
+  }
+}
+
+/* Right menu button (when screen width < 768px) */
+.csvn-main-menu-bars {
+  width: 100%;
+  margin: 0rem 1rem;
+  color: #f0f0ee;
+  background-color: transparent;
+  font-size: 1.5em; /* 24px */
+}
+.csvn-main-menu-bars:hover {
+  text-shadow:  0px  0px 1px rgba(255,255,255,0.9);
+  cursor: pointer;
+}
+@media screen and (min-width: 768px) { /* в зависимости от количества пунктов главного меню */
+  .csvn-main-menu-bars {
+    display: none;
+  }
+}
+
+/* Right popup menu (when screen width < 768px) */
+.csvn-popup-menu-bars {
+  max-width: 320px;
+  position: absolute;
+  top: 101%;
+  right: 1rem;
+  width: 200px;
+  background-color: rgba(102,102,102,0.97);
+  border: 1px solid rgba(108, 108, 108, 0.97);
+  border-radius: 0px 0px 4px 4px;
+  padding: 0.5rem 0.5rem;
+
+  opacity: 0;
+  transform: scaleY(0.0);
+  transform-origin: 0 0;
+  transition: 500ms ease-in-out;
+  z-index: 11;
+}
+@media screen and (max-width: 640px) {
+  .csvn-popup-menu-bars {
+    top: 102%;
+  }
+}
+
+.visible.csvn-popup-menu-bars {
+  opacity: 1;
+  transform: scaleY(1.0);
+}
+
+.csvn-popup-menu-bars > .item {
+  margin: 0.8rem 1rem;
+}
+.csvn-popup-menu-bars > .divider {
+  border-top: 1px solid #bec3bb; /*1px solid rgba(180, 11, 34, 0.6);*/
+  margin: 0.5em 1em;
+  height: 0em;
+}
+
+/*********************************
+  Main Sub Menu wirh search form:
+ */
+.csvn-sub-menu {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  font-size: 0.875em; /* 14px */
+  color: #f0f0ee;
+}
+.sub-menu {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+}
+.sub-menu > .item {
+  margin: auto 0.5rem;
+  white-space: nowrap;
+  overflow-y: hidden;
+}
+.left.sub-menu {
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+.left.sub-menu > .item:first-of-type {
+  margin-left: 2rem;
+}
+.right.sub-menu > .item:last-of-type {
+  margin-right: 1rem;
+}
+.sub-menu a {
+  color: inherit;
+  background-color: transparent;
+}
+.sub-menu a.base {
+  color: inherit;
+}
+.sub-menu a.relative {
+  color: #f0f0ee;
+}
+.sub-menu a:hover {
+  text-shadow:  0px  0px 1px rgba(255,255,255,0.9);
+}
+
+.relative-path {
+  font-family: 'Fira Sans';
+  font-weight: 400;
+  /* color: #f7f5e7; */
+  color: #cadaba;
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+
+.search-form {
+  display: flex;
+  flex-direction: row;
+  margin: 0.2rem 0rem 0.6rem 0rem;
+}
+.search-button {
+  cursor: pointer;
+  margin: 0rem 0.1rem 0rem 0.2rem;
+}
+.search-form > input {
+  margin: 0em;
+  padding-left: 0.4rem;
+  max-width: 120px;
+  flex: 1 0 auto;
+  outline: none;
+  text-align: left;
+  font-family: 'Roboto';
+  background: transparent;
+  border: 1px solid transparent;
+  border-bottom: 1px solid #9b9b9b;
+  color: #f0f0ee;
+  box-shadow: none;
+}
+
+::placeholder {
+  color: #f0f0ee;
+  opacity: 0.4;
+}
+
+
+/****************************
+  Content segment's classes:
+ */
+.csvn-main-content {
+  margin: 0rem 1rem;
+}
+
+
+/******************************
+  Header of repositories list:
+ */
+.repo-list-header {
+  color: #5a0510;
+  font-family: 'Fira Sans';
+  font-weight: 500;
+  margin-bottom: 4px;
+}
+/********************
+  Repo list columns:
+ */
+.repo-name {
+  margin: 0rem 1rem;
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+.repo-desc {
+  margin-right: 1rem;
+  text-align: justify;
+}
+.repo-desc:not(.trunc) {
+  color: #000087;
+}
+.repo-owner {
+  margin-right: 1rem;
+  text-align: right;
+}
+@media screen and (max-width: 992px) {
+  .repo-owner { margin-right: 0.5rem; }
+}
+@media screen and (max-width: 480px) {
+  .repo-owner { margin-right: 1rem; }
+}
+.repo-owner:not(.trunc) {
+  color: #080808;
+}
+.repo-rev {
+  margin-right: 1rem;
+  text-align: right;
+}
+.repo-rev:not(.trunc) {
+  color: #5a0510;
+}
+.repo-idle {
+  margin-right: 1rem;
+}
+.repo-idle:not(.trunc) {
+  color: #080808;
+}
+.trunc {
+  white-space: nowrap !important;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+/********************************************
+  Section of repos in the repositories list:
+ */
+.section {
+  grid-column: span 24;
+  padding-bottom: 8px;
+  color: #5b5b5b;
+}
+.section-header {
+  padding-top: 6px;
+  padding-bottom: 2px;
+  color: #9b9b9b;
+  margin-bottom: 6px;
+  font-style: italic;
+}
+.section .row:hover {
+  background-color: #f2f3f4;
+}
+
+/****************************
+  Header of repository tree:
+ */
+.repo-tree-header {
+  color: #5a0510;
+  font-family: 'Fira Sans';
+  font-weight: 500;
+  margin-bottom: 4px;
+}
+/********************
+  Tree list columns:
+ */
+.tree-path {
+  margin: 0rem 1rem;
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+.tree-size {
+  margin-right: 1rem;
+  text-align: right;
+}
+.tree-size:not(.trunc) {
+  color: #080808;
+}
+.tree-rev {
+  margin-right: 1rem;
+  text-align: right;
+}
+.tree-rev:not(.trunc) {
+  color: #5a0510;
+}
+.tree-date {
+  margin-right: 1rem;
+}
+.tree-date:not(.trunc) {
+  color: #080808;
+}
+.tree-links {
+  margin-right: 0rem;
+}
+
+/**************************
+  Repository Tree section:
+ */
+.tree {
+  grid-column: span 24;
+  padding-bottom: 8px;
+}
+.tree .row:hover {
+  background-color: #f2f3f4;
+}
+.dir {
+  color: #262626; /* color 235 */
+}
+.file {
+  color: #585858; /* color 240 */
+}
+.exec {
+  color: #007200; /* https://encycolorpedia.ru/007200 */
+}
+.tree a:hover,
+.tree a .dir:hover,
+.tree a .file:hover {
+  color: #b40b22;
+}
+
+/*******************
+  Checkout URL Box:
+ */
+.checkout-box {
+  padding-top: 1em;
+}
+.checkout-header {
+  color: #5a0510;
+  font-family: 'Fira Sans';
+  font-weight: 500;
+  margin-top: 1em;
+  margin-bottom: 4px;
+}
+.checkout-urls {
+  overflow-x: auto;
+  padding-bottom: 4px;
+}
+.checkout-line {
+  display: flex;
+  flex-direction: row;
+  font-family: 'Roboto Mono';
+  font-weight: 400;
+  font-size: 0.875em;
+}
+.checkout-perms {
+  font-weight: bold;
+  padding: 0rem 0.5rem 0rem 1rem;
+}
+.checkout-url {
+  padding-right: 1rem;
+  white-space: nowrap;
+}
+
+
+/*****************************
+  Repolist Prev/Next buttons:
+ */
+.direction {
+  display: block;
+  background-color: #f7f5e7;
+  border-radius: 4px;
+  margin: 1em 0em 2em 0em;
+  padding: 4px 0px 6px 0px;
+  font-size: 1em; /* 16px */
+}
+.col-prev    { grid-column: span 12; }
+.col-next    { grid-column: span 12; }
+
+.prev-direction {
+  display: block;
+  margin-left: 1rem;
+}
+.next-direction {
+  display: block;
+  margin-right: 1rem;
+}
+
+
+/****************
+  Header of log:
+ */
+.repo-log-header {
+  color: #5a0510;
+  font-family: 'Fira Sans';
+  font-weight: 500;
+  margin-bottom: 4px;
+}
+.log-date {
+  margin: 0rem 0rem 0rem 1rem;
+}
+.log .log-date:not(.trunc) {
+  color: #080808;
+}
+.log-cmsg {
+  margin: 0rem 1rem;
+  white-space: pre-wrap;
+  text-align: justify;
+}
+.log-cmsg:not(.trunc) {
+  color: #000087;
+}
+.log-rev {
+  margin-right: 1rem;
+  text-align: right;
+}
+.log-author {
+  margin-right: 1rem;
+}
+.log-author:not(.trunc) {
+  color: #080808;
+}
+
+/***************
+  Log section:
+ */
+.log {
+  grid-column: span 24;
+  padding-bottom: 8px;
+  margin-bottom: 2em;
+}
+.log .row:hover {
+  background-color: #f2f3f4;
+}
+
+/************************
+  Log Prev/Next buttons:
+ */
+.log-direction {
+  display: block;
+  background-color: #f7f5e7;
+  border-radius: 4px;
+  margin: 1em 0em 2em 0em;
+  padding: 4px 0px 6px 0px;
+  font-size: 1em; /* 16px */
+}
+.prev-log-direction {
+  display: block;
+  margin-left: 1rem;
+}
+.next-log-direction {
+  display: block;
+  margin-right: 1rem;
+}
+
+/************************
+  File Links Menu:
+ */
+.top {
+  margin-bottom: -0.7em;
+}
+.bottom {
+  margin-top: -0.8em;
+}
+.file-links-menu {
+  display: flex;
+  flex-direction: row;
+  align-items: flex-end;
+  color: #545454;
+}
+.links-menu {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+}
+.links-menu > .item {
+  margin: auto 0.5rem auto 0rem;
+  white-space: nowrap;
+  overflow-y: hidden;
+}
+.links-menu .item .icon {
+  color: #545454;
+}
+.file-links-menu a:hover {
+  color: #b40b22;
+}
+.file-links-menu .links-menu .item:last-child {
+  margin-right: 0.4em;
+}
+
+/***************************
+  Footer segment's classes:
+ */
+.csvn-footer {
+  margin: 0rem 1rem;
+}
+.copying {
+  margin: 0.5rem 0rem 4rem;
+  padding-top: 0.5em;
+  border-top: 1px solid #c9c9c9;
+}
+.copying > p {
+  margin: 0.2rem 0rem;
+  font-size: 0.75em; /* 12px */
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+
+/***************************
+  Server Software Versions:
+ */
+.versions {
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  margin: 4rem auto 0rem;
+
+  padding-top: 0.5rem;
+  /* border-top: 1px solid #c9c9c9; */
+
+  font-family: 'Fira Sans';
+  font-size: 0.875em;
+  color: #5a0510;
+
+  white-space: nowrap;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+}
+.prog {
+  padding: 0rem 0.5rem 0rem 0.5rem;
+}
+.prog.svn {
+  border-left: 1px solid #5a0510;
+  border-right: 1px solid #5a0510;
+}
+.version {
+}
+.prog .tm {
+  color: #262626;
+  font-weight: 300;
+}
+
+/*******************************
+  Donate button in status line:
+ */
+a.donate {
+  color: #f7f5ef;
+}
+a.donate:hover {
+  color: #b40b22;
+  cursor: pointer;
+}
+a.donate .icon {
+  margin-left: 0.5em;
+}
+
+/*****************************************************
+  Icons for menu items (used with line-awesome font):
+ */
+.la, .las {
+  display: inline-block;
+  font-style: normal;
+  font-variant: normal;
+  line-height: 1;
+}
+
+.la-code-commit:before {
+  width: 1em;
+  height: 0.7em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M128%20256c0%2010.8.9%2021.5%202.6%2032H12c-6.6%200-12-5.4-12-12v-40c0-6.6%205.4-12%2012-12h118.6c-1.7%2010.5-2.6%2021.2-2.6%2032zm500-32H509.4c1.8%2010.5%202.6%2021.2%202.6%2032s-.9%2021.5-2.6%2032H628c6.6%200%2012-5.4%2012-12v-40c0-6.6-5.4-12-12-12zm-308-80c-29.9%200-58%2011.7-79.2%2032.8C219.6%20198%20208%20226.1%20208%20256s11.6%2058%2032.8%2079.2C262%20356.3%20290.1%20368%20320%20368s58-11.7%2079.2-32.8C420.4%20314%20432%20285.9%20432%20256s-11.6-58-32.8-79.2C378%20155.7%20349.9%20144%20320%20144m0-48c88.4%200%20160%2071.6%20160%20160s-71.6%20160-160%20160-160-71.6-160-160S231.6%2096%20320%2096z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+
+.la-folder-tree:before {
+  width: 1.1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2.5px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M288%20224h224a32%2032%200%200%200%2032-32V64a32%2032%200%200%200-32-32H400L368%200h-80a32%2032%200%200%200-32%2032v64H64V8a8%208%200%200%200-8-8H40a8%208%200%200%200-8%208v392a16%2016%200%200%200%2016%2016h208v64a32%2032%200%200%200%2032%2032h224a32%2032%200%200%200%2032-32V352a32%2032%200%200%200-32-32H400l-32-32h-80a32%2032%200%200%200-32%2032v64H64V128h192v64a32%2032%200%200%200%2032%2032zm0%2096h66.74l32%2032H512v128H288zm0-288h66.74l32%2032H512v128H288z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+
+.la-search-left:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 5px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M508.5%20468.9L387.1%20347.5c-2.3-2.3-5.3-3.5-8.5-3.5h-13.2c31.5-36.5%2050.6-84%2050.6-136C416%2093.1%20322.9%200%20208%200S0%2093.1%200%20208s93.1%20208%20208%20208c52%200%2099.5-19.1%20136-50.6v13.2c0%203.2%201.3%206.2%203.5%208.5l121.4%20121.4c4.7%204.7%2012.3%204.7%2017%200l22.6-22.6c4.7-4.7%204.7-12.3%200-17zM208%20368c-88.4%200-160-71.6-160-160S119.6%2048%20208%2048s160%2071.6%20160%20160-71.6%20160-160%20160z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-search-left:before {
+    top: 3px;
+  }
+}
+
+.la-code-branch:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2011%204%20C%209.355469%204%208%205.355469%208%207%20C%208%208.292969%208.84375%209.394531%2010%209.8125%20L%2010%2022.1875%20C%208.84375%2022.605469%208%2023.707031%208%2025%20C%208%2026.644531%209.355469%2028%2011%2028%20C%2012.644531%2028%2014%2026.644531%2014%2025%20C%2014%2023.730469%2013.183594%2022.65625%2012.0625%2022.21875%20C%2012.207031%2020.988281%2012.683594%2020.382813%2013.4375%2019.875%20C%2014.335938%2019.269531%2015.714844%2018.910156%2017.21875%2018.5625%20C%2018.722656%2018.214844%2020.335938%2017.855469%2021.6875%2016.90625%20C%2022.875%2016.074219%2023.773438%2014.710938%2023.96875%2012.8125%20C%2025.140625%2012.402344%2026%2011.300781%2026%2010%20C%2026%208.355469%2024.644531%207%2023%207%20C%2021.355469%207%2020%208.355469%2020%2010%20C%2020%2011.277344%2020.832031%2012.351563%2021.96875%2012.78125%20C%2021.832031%2014.09375%2021.324219%2014.746094%2020.5625%2015.28125%20C%2019.664063%2015.910156%2018.277344%2016.28125%2016.78125%2016.625%20C%2015.285156%2016.96875%2013.664063%2017.273438%2012.3125%2018.1875%20C%2012.203125%2018.261719%2012.101563%2018.355469%2012%2018.4375%20L%2012%209.8125%20C%2013.15625%209.394531%2014%208.292969%2014%207%20C%2014%205.355469%2012.644531%204%2011%204%20Z%20M%2011%206%20C%2011.5625%206%2012%206.4375%2012%207%20C%2012%207.5625%2011.5625%208%2011%208%20C%2010.4375%208%2010%207.5625%2010%207%20C%2010%206.4375%2010.4375%206%2011%206%20Z%20M%2023%209%20C%2023.5625%209%2024%209.4375%2024%2010%20C%2024%2010.5625%2023.5625%2011%2023%2011%20C%2022.4375%2011%2022%2010.5625%2022%2010%20C%2022%209.4375%2022.4375%209%2023%209%20Z%20M%2011%2024%20C%2011.5625%2024%2012%2024.4375%2012%2025%20C%2012%2025.5625%2011.5625%2026%2011%2026%20C%2010.4375%2026%2010%2025.5625%2010%2025%20C%2010%2024.4375%2010.4375%2024%2011%2024%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-code-branch:before {
+    top: 2px;
+  }
+}
+
+.la-balance-scale:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%205%20C%2014.707031%205%2013.605469%205.84375%2013.1875%207%20L%206%207%20L%206%209%20L%207.40625%209%20L%207.125%209.5%20L%203.125%2016.5%20L%203%2016.75%20L%203%2017%20C%203%2019.75%205.25%2022%208%2022%20C%2010.75%2022%2013%2019.75%2013%2017%20L%2013%2016.75%20L%2012.875%2016.5%20L%208.875%209.5%20L%208.59375%209%20L%2013.1875%209%20C%2013.492188%209.84375%2014.15625%2010.507813%2015%2010.8125%20L%2015%2024%20L%2011%2024%20L%2011%2026%20L%2021%2026%20L%2021%2024%20L%2017%2024%20L%2017%2010.8125%20C%2017.839844%2010.507813%2018.507813%209.839844%2018.8125%209%20L%2023.40625%209%20L%2023.125%209.5%20L%2019.125%2016.5%20L%2019%2016.75%20L%2019%2017%20C%2019%2019.75%2021.25%2022%2024%2022%20C%2026.75%2022%2029%2019.75%2029%2017%20L%2029%2016.75%20L%2028.875%2016.5%20L%2024.875%209.5%20L%2024.59375%209%20L%2026%209%20L%2026%207%20L%2018.8125%207%20C%2018.394531%205.84375%2017.292969%205%2016%205%20Z%20M%2016%207%20C%2016.5625%207%2017%207.4375%2017%208%20C%2017%208.5625%2016.5625%209%2016%209%20C%2015.4375%209%2015%208.5625%2015%208%20C%2015%207.4375%2015.4375%207%2016%207%20Z%20M%208%2012.03125%20L%2010.28125%2016%20L%205.71875%2016%20Z%20M%2024%2012.03125%20L%2026.28125%2016%20L%2021.71875%2016%20Z%20M%205.25%2018%20L%2010.75%2018%20C%2010.347656%2019.160156%209.304688%2020%208%2020%20C%206.695313%2020%205.652344%2019.160156%205.25%2018%20Z%20M%2021.25%2018%20L%2026.75%2018%20C%2026.347656%2019.160156%2025.304688%2020%2024%2020%20C%2022.695313%2020%2021.652344%2019.160156%2021.25%2018%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-balance-scale:before {
+    top: 2px;
+  }
+}
+
+.la-bus:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%209%204%20C%206.800781%204%205%205.800781%205%208%20L%205%2013%20L%203%2013%20L%203%2016%20L%205%2016%20L%205%2027%20C%205%2027.550781%205.449219%2028%206%2028%20L%209%2028%20L%209.34375%2027%20L%2022.65625%2027%20L%2023%2028%20L%2026%2028%20C%2026.550781%2028%2027%2027.550781%2027%2027%20L%2027%2016%20L%2029%2016%20L%2029%2013%20L%2027%2013%20L%2027%208%20C%2027%205.800781%2025.199219%204%2023%204%20Z%20M%209%206%20L%2023%206%20C%2024.117188%206%2025%206.882813%2025%208%20L%207%208%20C%207%206.882813%207.882813%206%209%206%20Z%20M%207%2010%20L%2015%2010%20L%2015%2017%20L%207%2017%20Z%20M%2017%2010%20L%2025%2010%20L%2025%2017%20L%2017%2017%20Z%20M%207%2019%20L%2025%2019%20L%2025%2025%20L%207%2025%20Z%20M%208%2021%20L%208%2023%20L%2012%2023%20L%2012%2021%20Z%20M%2020%2021%20L%2020%2023%20L%2024%2023%20L%2024%2021%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-bus:before {
+    top: 2px;
+  }
+}
+
+.la-cloud-download:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%206%20C%2013.351563%206%2011.050781%207.238281%209.40625%209.0625%20C%209.269531%209.046875%209.148438%209%209%209%20C%206.800781%209%205%2010.800781%205%2013%20C%203.269531%2014.054688%202%2015.835938%202%2018%20C%202%2021.300781%204.699219%2024%208%2024%20L%2013%2024%20L%2013%2022%20L%208%2022%20C%205.78125%2022%204%2020.21875%204%2018%20C%204%2016.339844%205.007813%2014.921875%206.4375%2014.3125%20L%207.125%2014.03125%20L%207.03125%2013.28125%20C%207.011719%2013.117188%207%2013.023438%207%2013%20C%207%2011.882813%207.882813%2011%209%2011%20C%209.140625%2011%209.296875%2011.019531%209.46875%2011.0625%20L%2010.09375%2011.21875%20L%2010.46875%2010.71875%20C%2011.75%209.074219%2013.75%208%2016%208%20C%2019.277344%208%2022.011719%2010.253906%2022.78125%2013.28125%20L%2022.96875%2014.0625%20L%2023.8125%2014.03125%20C%2024.023438%2014.019531%2024.070313%2014%2024%2014%20C%2026.21875%2014%2028%2015.78125%2028%2018%20C%2028%2020.21875%2026.21875%2022%2024%2022%20L%2019%2022%20L%2019%2024%20L%2024%2024%20C%2027.300781%2024%2030%2021.300781%2030%2018%20C%2030%2014.84375%2027.511719%2012.316406%2024.40625%2012.09375%20C%2023.183594%208.574219%2019.925781%206%2016%206%20Z%20M%2015%2018%20L%2015%2026%20L%2012%2026%20L%2016%2030%20L%2020%2026%20L%2017%2026%20L%2017%2018%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-cloud-download:before {
+    top: 3px;
+  }
+}
+
+.la-cloud-upload:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%207%20C%2013.351563%207%2011.050781%208.238281%209.40625%2010.0625%20C%209.269531%2010.046875%209.148438%2010%209%2010%20C%206.800781%2010%205%2011.800781%205%2014%20C%203.269531%2015.054688%202%2016.835938%202%2019%20C%202%2022.300781%204.699219%2025%208%2025%20L%2013%2025%20L%2013%2023%20L%208%2023%20C%205.78125%2023%204%2021.21875%204%2019%20C%204%2017.339844%205.007813%2015.921875%206.4375%2015.3125%20L%207.125%2015.03125%20L%207.03125%2014.28125%20C%207.011719%2014.117188%207%2014.023438%207%2014%20C%207%2012.882813%207.882813%2012%209%2012%20C%209.140625%2012%209.296875%2012.019531%209.46875%2012.0625%20L%2010.09375%2012.21875%20L%2010.46875%2011.71875%20C%2011.75%2010.074219%2013.75%209%2016%209%20C%2019.277344%209%2022.011719%2011.253906%2022.78125%2014.28125%20L%2022.96875%2015.0625%20L%2023.8125%2015.03125%20C%2024.023438%2015.019531%2024.070313%2015%2024%2015%20C%2026.21875%2015%2028%2016.78125%2028%2019%20C%2028%2021.21875%2026.21875%2023%2024%2023%20L%2019%2023%20L%2019%2025%20L%2024%2025%20C%2027.300781%2025%2030%2022.300781%2030%2019%20C%2030%2015.84375%2027.511719%2013.316406%2024.40625%2013.09375%20C%2023.183594%209.574219%2019.925781%207%2016%207%20Z%20M%2016%2015%20L%2012%2019%20L%2015%2019%20L%2015%2027%20L%2017%2027%20L%2017%2019%20L%2020%2019%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-cloud-upload:before {
+    top: 3px;
+  }
+}
+
+.la-bars:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%204%207%20L%204%209%20L%2028%209%20L%2028%207%20Z%20M%204%2015%20L%204%2017%20L%2028%2017%20L%2028%2015%20Z%20M%204%2023%20L%204%2025%20L%2028%2025%20L%2028%2023%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-bars:before {
+    top: 3px;
+  }
+}
+
+.la-times:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%207.21875%205.78125%20L%205.78125%207.21875%20L%2014.5625%2016%20L%205.78125%2024.78125%20L%207.21875%2026.21875%20L%2016%2017.4375%20L%2024.78125%2026.21875%20L%2026.21875%2024.78125%20L%2017.4375%2016%20L%2026.21875%207.21875%20L%2024.78125%205.78125%20L%2016%2014.5625%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-times:before {
+    top: 3px;
+  }
+}
+
+.la-tags:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2014.59375%204%20L%2014.28125%204.28125%20L%203.28125%2015.28125%20L%202.59375%2016%20L%203.28125%2016.71875%20L%2012.28125%2025.71875%20L%2013%2026.40625%20L%2013.71875%2025.71875%20L%2024.71875%2014.71875%20L%2025%2014.40625%20L%2025%204%20Z%20M%2015.4375%206%20L%2023%206%20L%2023%2013.5625%20L%2013%2023.5625%20L%205.4375%2016%20Z%20M%2026%207%20L%2026%209%20L%2027%209%20L%2027%2017.15625%20L%2017.5%2026.59375%20L%2016.25%2025.34375%20L%2014.84375%2026.75%20L%2016.78125%2028.71875%20L%2017.5%2029.40625%20L%2018.1875%2028.71875%20L%2028.71875%2018.3125%20L%2029%2018%20L%2029%207%20Z%20M%2020%208%20C%2019.449219%208%2019%208.449219%2019%209%20C%2019%209.550781%2019.449219%2010%2020%2010%20C%2020.550781%2010%2021%209.550781%2021%209%20C%2021%208.449219%2020.550781%208%2020%208%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-tags:before {
+    top: 3px;
+  }
+}
+
+.la-tag:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%205%20L%2015.6875%205.28125%20L%204.28125%2016.8125%20L%203.59375%2017.5%20L%204.28125%2018.21875%20L%2013.78125%2027.71875%20L%2014.5%2028.40625%20L%2015.1875%2027.71875%20L%2026.71875%2016.3125%20L%2027%2016%20L%2027%205%20Z%20M%2016.84375%207%20L%2025%207%20L%2025%2015.15625%20L%2014.5%2025.59375%20L%206.40625%2017.5%20Z%20M%2022%209%20C%2021.449219%209%2021%209.449219%2021%2010%20C%2021%2010.550781%2021.449219%2011%2022%2011%20C%2022.550781%2011%2023%2010.550781%2023%2010%20C%2023%209.449219%2022.550781%209%2022%209%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-tag:before {
+    top: 3px;
+  }
+}
+
+.la-scroll:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2010%204%20C%208.355%204%207%205.355%207%207%20L%207%2021%20L%204%2021%20L%204%2025%20C%204%2026.645%205.355%2028%207%2028%20L%2021%2028%20L%2021.03125%2028%20C%2022.66025%2027.984%2024%2026.633%2024%2025%20L%2024%2011%20L%2028%2011%20L%2028%207%20C%2028%205.355%2026.645%204%2025%204%20L%2010%204%20z%20M%2010%206%20L%2022.1875%206%20C%2022.0745%206.316%2022%206.648%2022%207%20L%2022%2025%20C%2022%2025.566%2021.566%2026%2021%2026%20C%2020.437%2026.008%2020.008%2025.562%2020%2025%20L%2019.96875%2021%20L%209%2021%20L%209%207%20C%209%206.434%209.434%206%2010%206%20z%20M%2025%206%20C%2025.566%206%2026%206.434%2026%207%20L%2026%209%20L%2024%209%20L%2024%207%20C%2024%206.434%2024.434%206%2025%206%20z%20M%206%2023%20L%2014%2023%20L%2017.96875%2023%20L%2018%2023%20L%2018%2025%20L%2018%2025.03125%20C%2018.004%2025.37525%2018.0745%2025.691%2018.1875%2026%20L%207%2026%20C%206.434%2026%206%2025.566%206%2025%20L%206%2023%20z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-scroll:before {
+    top: 2px;
+  }
+}
+
+.la-chart-bar:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2021%204%20L%2021%2028%20L%2029%2028%20L%2029%204%20Z%20M%2023%206%20L%2027%206%20L%2027%2026%20L%2023%2026%20Z%20M%203%2010%20L%203%2028%20L%2011%2028%20L%2011%2010%20Z%20M%205%2012%20L%209%2012%20L%209%2026%20L%205%2026%20Z%20M%2012%2016%20L%2012%2028%20L%2020%2028%20L%2020%2016%20Z%20M%2014%2018%20L%2018%2018%20L%2018%2026%20L%2014%2026%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-chart-bar:before {
+    top: 2px;
+  }
+}
+
+.la-home:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%202.59375%20L%2015.28125%203.28125%20L%202.28125%2016.28125%20L%203.71875%2017.71875%20L%205%2016.4375%20L%205%2028%20L%2014%2028%20L%2014%2018%20L%2018%2018%20L%2018%2028%20L%2027%2028%20L%2027%2016.4375%20L%2028.28125%2017.71875%20L%2029.71875%2016.28125%20L%2016.71875%203.28125%20Z%20M%2016%205.4375%20L%2025%2014.4375%20L%2025%2026%20L%2020%2026%20L%2020%2016%20L%2012%2016%20L%2012%2026%20L%207%2026%20L%207%2014.4375%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-home:before {
+    top: 2px;
+  }
+}
+
+.la-road:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%205.46875%206%20L%205.28125%206.75%20L%200.625%2024.75%20L%200.28125%2026%20L%2031.71875%2026%20L%2031.375%2024.75%20L%2026.71875%206.75%20L%2026.53125%206%20Z%20M%207.03125%208%20L%2015.125%208%20L%2015.0625%2011%20L%2016.9375%2011%20L%2016.875%208%20L%2024.96875%208%20L%2029.125%2024%20L%2017.28125%2024%20L%2017.1875%2020%20L%2014.8125%2020%20L%2014.71875%2024%20L%202.875%2024%20Z%20M%2015%2013%20L%2014.875%2018%20L%2017.125%2018%20L%2017%2013%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-road:before {
+    top: 3px;
+  }
+}
+
+.la-diff:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 2px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20296%20296%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M295.934%2C69.249c0.051-2.252-0.868-4.413-2.523-5.934l-25.699-23.56c-1.442-1.32-3.316-2.054-5.271-2.054H155.5V17.319%20c0-4.311-3.491-7.8-7.8-7.8c-4.312%2C0-7.8%2C3.489-7.8%2C7.8v76.028H33.499c-1.95%2C0-3.832%2C0.731-5.271%2C2.049l-25.7%2C23.559%20c-1.658%2C1.518-2.577%2C3.682-2.526%2C5.934c0.054%2C2.252%2C1.077%2C4.367%2C2.803%2C5.807l25.702%2C21.419c1.404%2C1.173%2C3.166%2C1.812%2C4.992%2C1.812%20H139.9v124.689c0%2C4.312%2C3.488%2C7.8%2C7.8%2C7.8c4.309%2C0%2C7.8-3.488%2C7.8-7.8V146.127v-44.98v-2.867h106.935%20c1.823%2C0%2C3.59-0.64%2C4.991-1.808l25.695-21.419C294.857%2C73.618%2C295.878%2C71.501%2C295.934%2C69.249z%20M36.322%2C138.33l-16.681-13.898%20l16.889-15.48H139.9v29.378H36.322z%20M259.616%2C82.685H156.041V53.307h103.361l16.89%2C15.48L259.616%2C82.685z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-diff:before {
+    top: 2px;
+  }
+}
+
+.la-blame:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 3px;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2010.292969%205.292969%20L%207%208.585938%20L%205.707031%207.292969%20L%204.292969%208.707031%20L%207%2011.414063%20L%2011.707031%206.707031%20Z%20M%2014%207%20L%2014%209%20L%2028%209%20L%2028%207%20Z%20M%2014%2015%20L%2014%2017%20L%2028%2017%20L%2028%2015%20Z%20M%2014%2023%20L%2014%2025%20L%2028%2025%20L%2028%2023%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-blame:before {
+    top: 3px;
+  }
+}
+
+.la-credit-card:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0.1875em; /* 3px */
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%205%206%20C%203.355469%206%202%207.355469%202%209%20L%202%2023%20C%202%2024.644531%203.355469%2026%205%2026%20L%2027%2026%20C%2028.644531%2026%2030%2024.644531%2030%2023%20L%2030%209%20C%2030%207.355469%2028.644531%206%2027%206%20Z%20M%205%208%20L%2027%208%20C%2027.566406%208%2028%208.433594%2028%209%20L%2028%2011%20L%205%2011%20L%205%2013%20L%2028%2013%20L%2028%2023%20C%2028%2023.566406%2027.566406%2024%2027%2024%20L%205%2024%20C%204.433594%2024%204%2023.566406%204%2023%20L%204%209%20C%204%208.433594%204.433594%208%205%208%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-credit-card:before {
+    top: 0.1875em; /* 3px */
+  }
+}
+
+.la-ruble:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0.125em;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2011%206%20L%2011%2016%20L%209%2016%20L%209%2018%20L%2011%2018%20L%2011%2020%20L%209%2020%20L%209%2022%20L%2011%2022%20L%2011%2026%20L%2013%2026%20L%2013%2022%20L%2018%2022%20L%2018%2020%20L%2013%2020%20L%2013%2018%20L%2019%2018%20C%2022.300781%2018%2025%2015.300781%2025%2012%20C%2025%208.699219%2022.300781%206%2019%206%20Z%20M%2013%208%20L%2019%208%20C%2021.21875%208%2023%209.78125%2023%2012%20C%2023%2014.21875%2021.21875%2016%2019%2016%20L%2013%2016%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-ruble:before {
+    top: 0.125em; /* 2px */
+  }
+}
+
+.la-euro:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0.125em;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2018%204%20C%2013.261719%204%209.414063%207.886719%208.3125%2013%20L%206%2013%20L%206%2015%20L%208.0625%2015%20C%208.039063%2015.328125%208%2015.664063%208%2016%20C%208%2016.335938%208.039063%2016.671875%208.0625%2017%20L%206%2017%20L%206%2019%20L%208.3125%2019%20C%209.414063%2024.113281%2013.261719%2028%2018%2028%20C%2020.707031%2028%2023.167969%2026.695313%2024.9375%2024.65625%20L%2023.40625%2023.34375%20C%2021.953125%2025.019531%2020.070313%2026%2018%2026%20C%2014.496094%2026%2011.410156%2023.101563%2010.375%2019%20L%2019%2019%20L%2019%2017%20L%2010.03125%2017%20C%2010.003906%2016.667969%2010%2016.339844%2010%2016%20C%2010%2015.660156%2010.003906%2015.332031%2010.03125%2015%20L%2019%2015%20L%2019%2013%20L%2010.375%2013%20C%2011.410156%208.898438%2014.496094%206%2018%206%20C%2020.070313%206%2021.953125%206.980469%2023.40625%208.65625%20L%2024.9375%207.34375%20C%2023.167969%205.304688%2020.707031%204%2018%204%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-euro:before {
+    top: 0.125em; /* 2px */
+  }
+}
+
+.la-dollar:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0.125em;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2015%203%20L%2015%205.09375%20C%2012.164063%205.570313%2010%208.050781%2010%2011%20C%2010%2012.777344%2010.832031%2014.148438%2011.9375%2015.03125%20C%2013.042969%2015.914063%2014.375%2016.40625%2015.625%2016.90625%20C%2016.875%2017.40625%2018.042969%2017.914063%2018.8125%2018.53125%20C%2019.582031%2019.148438%2020%2019.773438%2020%2021%20C%2020%2023.15625%2018.207031%2025%2016%2025%20C%2013.78125%2025%2012%2023.21875%2012%2021%20L%2012%2020%20L%2010%2020%20L%2010%2021%20C%2010%2023.964844%2012.164063%2026.429688%2015%2026.90625%20L%2015%2029%20L%2017%2029%20L%2017%2026.90625%20C%2019.84375%2026.425781%2022%2023.925781%2022%2021%20C%2022%2019.21875%2021.167969%2017.855469%2020.0625%2016.96875%20C%2018.957031%2016.082031%2017.625%2015.5625%2016.375%2015.0625%20C%2015.125%2014.5625%2013.957031%2014.082031%2013.1875%2013.46875%20C%2012.417969%2012.855469%2012%2012.21875%2012%2011%20C%2012%208.808594%2013.785156%207%2016%207%20C%2018.21875%207%2020%208.78125%2020%2011%20L%2020%2012%20L%2022%2012%20L%2022%2011%20C%2022%208.035156%2019.835938%205.570313%2017%205.09375%20L%2017%203%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-dollar:before {
+    top: 0.125em; /* 2px */
+  }
+}
+
+.la-question-circle:before {
+  width: 1em;
+  height: 1em;
+  display: inline-flex;
+  position: relative;
+  left: 0;
+  top: 0.125em;
+  content: '';
+  background-color: currentColor;
+  -webkit-mask: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M%2016%204%20C%209.382813%204%204%209.382813%204%2016%20C%204%2022.617188%209.382813%2028%2016%2028%20C%2022.617188%2028%2028%2022.617188%2028%2016%20C%2028%209.382813%2022.617188%204%2016%204%20Z%20M%2016%206%20C%2021.535156%206%2026%2010.464844%2026%2016%20C%2026%2021.535156%2021.535156%2026%2016%2026%20C%2010.464844%2026%206%2021.535156%206%2016%20C%206%2010.464844%2010.464844%206%2016%206%20Z%20M%2016%2010%20C%2013.800781%2010%2012%2011.800781%2012%2014%20L%2014%2014%20C%2014%2012.882813%2014.882813%2012%2016%2012%20C%2017.117188%2012%2018%2012.882813%2018%2014%20C%2018%2014.765625%2017.507813%2015.445313%2016.78125%2015.6875%20L%2016.375%2015.8125%20C%2015.558594%2016.082031%2015%2016.863281%2015%2017.71875%20L%2015%2019%20L%2017%2019%20L%2017%2017.71875%20L%2017.40625%2017.59375%20C%2018.945313%2017.082031%2020%2015.621094%2020%2014%20C%2020%2011.800781%2018.199219%2010%2016%2010%20Z%20M%2015%2020%20L%2015%2022%20L%2017%2022%20L%2017%2020%20Z%22%2F%3E%3C%2Fsvg%3E');
+  -webkit-mask-size: cover;
+}
+@media screen and (min-width: 1920px) {
+  .la-question-circle:before {
+    top: 0.125em; /* 2px */
+  }
+}